Advertisement
eduardovp97

ex10.c

Nov 14th, 2016
77
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 "tree.h"
  4.  
  5. void perimetro(TTree *tree);
  6. void ramaIzquierda(TNode *node);
  7. void hojas(TNode *node);
  8. void ramaDerecha(TNode *node);
  9.  
  10. int main(){
  11.  
  12.     TTree arbol;
  13.     crearArbol(&arbol);
  14.     insertar(&arbol,15);
  15.     insertar(&arbol,6);
  16.     insertar(&arbol,3);
  17.     insertar(&arbol,1);
  18.     insertar(&arbol,4);
  19.     insertar(&arbol,9);
  20.     insertar(&arbol,7);
  21.     insertar(&arbol,12);
  22.     insertar(&arbol,20);
  23.     insertar(&arbol,18);
  24.     insertar(&arbol,24);
  25.     insertar(&arbol,17);       
  26.  
  27.     perimetro(&arbol);
  28.  
  29.     return 0;
  30. }
  31.  
  32. void perimetro(TTree *tree){
  33.     ramaIzquierda(tree->root);
  34.     hojas(tree->root);
  35.     ramaDerecha(tree->root);
  36. }
  37.  
  38. void ramaIzquierda(TNode *node){
  39.     TNode *p = node;
  40.     while(p->izq != NULL){
  41.         printf("%d ",p->info);
  42.         p = p->izq;
  43.     }
  44. }
  45.  
  46. void hojas(TNode *node){
  47.     if(node == NULL)
  48.         return;
  49.     if(node->izq == NULL && node->der==NULL){
  50.         printf("%d ",node->info);
  51.         return;
  52.     }
  53.     hojas(node->izq);
  54.     hojas(node->der);
  55. }
  56.  
  57. void ramaDerecha(TNode *node){
  58.     if(node->der == NULL)
  59.         return;
  60.     ramaDerecha(node->der);
  61.     printf("%d ",node->info);
  62. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement