karlangadas

TREE: 10TAD

Nov 14th, 2016
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.12 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "arbol.h"
  4. #include "lista.h"
  5. void InsertarHojas(TLista *L,TNode *node){
  6.     if (node==NULL)
  7.         return;
  8.     if (node->left==NULL && node->right==NULL && !Lista_EstaEnLista(L,node->elem))
  9.         Lista_InsertarDer(L,node->elem);
  10.     InsertarHojas(L,node->left);
  11.     InsertarHojas(L,node->right);
  12. }
  13. void perimetro(TBinaryTree *T){
  14.     TLista L1;
  15.     TLista L2;
  16.     TNode *q=T->root;
  17.     TNodo *r;
  18.     Lista_Crear(&L1);
  19.     Lista_Crear(&L2);
  20.     while (q!=NULL){
  21.         Lista_InsertarDer(&L1,q->elem);
  22.         q=q->left;
  23.     }
  24.     InsertarHojas(&L1,T->root);
  25.     q=T->root;
  26.     while (q!=NULL){
  27.         Lista_InsertarIzq(&L2,q->elem);
  28.         q=q->right;
  29.     }
  30.     r=L2.inicio;
  31.     while(r!=NULL){
  32.         if (!Lista_EstaEnLista(&L1,r->elem))
  33.             Lista_InsertarDer(&L1,r->elem);
  34.         r=r->sig;
  35.     }
  36.     Lista_Imprimir(L1);
  37. }
  38. int main(){
  39.     TBinaryTree T;
  40.     init_tree(&T);
  41.     insert(&T,40);
  42.     insert(&T,20);
  43.     insert(&T,60);
  44.     insert(&T,10);
  45.     insert(&T,30);
  46.     insert(&T,50);
  47.     insert(&T,70);
  48.     insert(&T,5);
  49.     insert(&T,15);
  50.     insert(&T,25);
  51.     insert(&T,35);
  52.     insert(&T,45);
  53.     insert(&T,55);
  54.     insert(&T,65);
  55.     insert(&T,75);
  56.  
  57.     perimetro(&T);
  58.    
  59.    
  60.     return 0;
  61. }
Advertisement
Add Comment
Please, Sign In to add comment