¿Cómo crear un árbol en .txt y que este al momento de leerlo me de el orden, postorden y el preorden?

Miren este es mi ejemplo :

#include <stdio.h>
#include <stdlib.h>

typedef struct _nodo {
int dato;
struct _nodo *derecho;
struct _nodo *izquierdo;
} tipoNodo;

typedef tipoNodo *pNodo;
typedef tipoNodo *Arbol;

int Vacio(Arbol r)
{
return r==NULL;
}
void Mostrar(int *d)
{
printf("%d, ", *d);
}
void Insertar(Arbol *a, int dat) {
pNodo padre = NULL;
pNodo actual = *a;

while(!Vacio(actual) && dat != actual->dato) {
padre = actual;
if(dat < actual->dato) actual = actual->izquierdo;
else if(dat > actual->dato) actual = actual->derecho;
}
if(!Vacio(actual)) return;
if(Vacio(padre)) {
*a = (Arbol)malloc(sizeof(tipoNodo));
(*a)->dato = dat;
(*a)->izquierdo = (*a)->derecho = NULL;
}
else if(dat < padre->dato) {
actual = (Arbol)malloc(sizeof(tipoNodo));
padre->izquierdo = actual;
actual->dato = dat;
actual->izquierdo = actual->derecho = NULL;
}
else if(dat > padre->dato) {
actual = (Arbol)malloc(sizeof(tipoNodo));
padre->derecho = actual;
actual->dato = dat;
actual->izquierdo = actual->derecho = NULL;
}
}

void InOrden(Arbol a, void (*func)(int*)) {
if(a->izquierdo) InOrden(a->izquierdo, func);
func(&(a->dato));
if(a->derecho) InOrden(a->derecho, func);
}
void PreOrden(Arbol a, void (*func)(int*)) {
func(&(a->dato));
if(a->izquierdo) PreOrden(a->izquierdo, func);
if(a->derecho) PreOrden(a->derecho, func);
}
void PostOrden(Arbol a, void (*func)(int*)) {
if(a->izquierdo) PostOrden(a->izquierdo, func);
if(a->derecho) PostOrden(a->derecho, func);
func(&(a->dato));
}
int main(){
Arbol ArbolInt=NULL;
void Insertar(Arbol *a, int dat);
int Vacio(Arbol r);
void InOrden(Arbol, void (*func)(int*));
void PreOrden(Arbol, void (*func)(int*));
void PostOrden(Arbol, void (*func)(int*));
void Mostrar(int *d);{
Insertar(&ArbolInt, 8);
Insertar(&ArbolInt, 6);
Insertar(&ArbolInt, 5);
Insertar(&ArbolInt, 7);
Insertar(&ArbolInt, 9);
Insertar(&ArbolInt, 9);
Insertar(&ArbolInt, 1);
}
printf("EnOrden: ");
InOrden(ArbolInt, Mostrar);
printf("\n");
printf("PreOrden: ");
PreOrden(ArbolInt, Mostrar);
printf("\n");
printf("PostOrden: ");
PostOrden(ArbolInt, Mostrar);
printf("\n");
}

Quisiera saber como agregar el siguiente árbol (8,6,5,7,9,91) y que lo muestre en orden, postorden y preorden

Añade tu respuesta

Haz clic para o