Sobre arboles binarios

Me he encontrado con algoritmo de arboles que según mi lógica funciona
correctamente para el recorrido PREORDEN el cual muestro a continuación:
{El algoritmo realiza el recorrido PREORDEN en un árbol binario. NODO es un dato
de tipo puntero}
{Se supone que existe una estructura como la siguiente:
struct xxyy
{
tipo_de_dato INFO
struct xxyy *izq;
struct xxyy *der;
}
}
1. Si NODO !=NULL
Visitar el NODO {Escribir NODO->INFO}
Regresar a PREORDEN con NODO->izq
{Llamada recursiva a PREORDEN con la rama izquierda del nodo en cuestión}
Regresar a PREORDEN con NODO->der
{Llamada recursiva a PREORDEN conla rama derecha del nodo en cuestión}
2. {Fin del condicional del paso 1}
Ahora bien mi duda es la siguiente:
A) En la linea: "Regresar a PREORDEN con NODO->izq", se supone que es una llamada recursiva y que también es necesario pasar el campo "izq", que es de tipo puntero:
¿Cómo tengo que declarar la función para que cuando yo realize la llamada recursiva pueda pasar un dato de tipo struct y que a su vez es un puntero?
En pocas palabras ¿Cómo seria en código del lenguaje Borland C 2.01 (no turbo C++), esta función del
recorrido PREORDEN de un árbol binario?

1 Respuesta

Respuesta
1
void InOrden(xxyy *nodo){
if(nodo->izq) InOrden(nodo->izq);
cout << nodo->info;
if(nodo->der) InOrden(nodo->der);
}
void PreOrden(xxyy *nodo){
cout << nodo->info;
if(nodo->izq) InOrden(nodo->izq);
if(nodo->der) InOrden(nodo->der);
}
void PosOrden(xxyy *nodo){
if(nodo->izq) InOrden(nodo->izq);
if(nodo->der) InOrden(nodo->der);
cout << nodo->info;
}
al llamar a las funciones haz lo siguiente;
PreOrden(raiz);
InOrden(raiz);
PosOrden(raiz);
raiz es un dato tipo xxyy que tiene la raiz del arbol;

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas