Revista Ejercicios de Grafos Revista | Page 10

EJERCICIO 8 Implementar una función no recursiva para recorrer un árbol binario en orden. #include < pilas.h> #include < arbolesB.h> void inordenNR(ArbolB T,void (* EscribirElemento)(void *),int tamano) { NodoB nodoAct,aux; void *et; Pila p; int fin; int faltaHD; //*Indica si falta el hijo derecho*// p=CrearPila(sizeof(NodoB)); et=malloc(tamano); if(!et){ //*Error: Sin memoria*// } aux=NODOB_NULO; Push(&aux,p); nodoAct=RaizB(T); fin=0; while(!fin){ while(nodoAct!=NODOB_NULO){ Push(&nodoAct,p); nodoAct=HijoIzqdaB(nodoAct,T); } Tope(&nodoAct,p); Pop(p); if (nodoAct!=NODOB_NULO){ EtiquetaArbolB(et,nodoAct,T); (*EscribirElemento)(et); nodoAct=HijoDrchaB(nodoAct,T); } else fin=1; } } free(et); DestruirPila(p); PAGINA 8