Advertisement
pmanriquez93

Arboles Perimetro

Jul 3rd, 2014
496
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.00 KB | None | 0 0
  1. void perimetro(TArbol *arbol){
  2.     TNodo *ptrRecIzq,*ptrRecDer;
  3.     ptrRecIzq = arbol->raiz;
  4.     while(ptrRecIzq->hijoIzq != NULL){
  5.         printf("%4d",ptrRecIzq->elem);
  6.         ptrRecIzq = ptrRecIzq->hijoIzq;
  7.     }
  8.    
  9.     TPila pila;
  10.     crearPila(&pila);
  11.     TNodo* ptrArbol;
  12.     ptrArbol = arbol->raiz;
  13.    
  14.     apilar(&pila,ptrArbol);
  15.     while(!esVaciaPila(&pila)){
  16.         TNodo * auxArbol;
  17.         auxArbol = cima(&pila);
  18.         if (auxArbol->hijoDer == NULL && auxArbol->hijoIzq == NULL)
  19.             printf("%4d",auxArbol->elem);
  20.         desapilar(&pila);
  21.         if (auxArbol->hijoDer != NULL)
  22.             apilar(&pila,auxArbol->hijoDer);
  23.         if (auxArbol->hijoIzq != NULL)
  24.             apilar(&pila,auxArbol->hijoIzq);
  25.     }
  26.    
  27.     TLista lista;
  28.     crearLista(&lista);
  29.    
  30.     ptrRecDer = arbol->raiz->hijoDer;
  31.     while(ptrRecDer->hijoDer != NULL){
  32.         anadeIzq(&lista,ptrRecDer->elem);
  33.         ptrRecDer = ptrRecDer->hijoDer;
  34.     }
  35.     imprimirLista(&lista);
  36. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement