Advertisement
eduardovp97

ex9.c

Nov 14th, 2016
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.17 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "tree.h"
  4.  
  5. int esSubArbol(TNode *node1, TNode *node2);
  6. int sonIguales(TNode *node1, TNode *node2);
  7.  
  8. int main(){
  9.  
  10.     TTree arbol1,arbol2;
  11.     crearArbol(&arbol1);
  12.     crearArbol(&arbol2);
  13.     insertar(&arbol1,5);
  14.     insertar(&arbol1,3);
  15.     insertar(&arbol1,2);
  16.     insertar(&arbol1,4);
  17.     insertar(&arbol1,6);
  18.     insertar(&arbol2,3);
  19.     insertar(&arbol2,2);
  20.     insertar(&arbol2,4);
  21.  
  22.     printf("%d\n",esSubArbol(arbol1.root,arbol2.root));
  23.  
  24.     return 0;
  25. }
  26.  
  27. int esSubArbol(TNode *node1, TNode *node2){
  28.     TNode *p = node1;
  29.     while(p != NULL){
  30.         if(p->info == node2->info)
  31.             if(sonIguales(p,node2))
  32.                 return 1;
  33.             else
  34.                 return 0;
  35.         else if(node2->info < p->info){
  36.             return esSubArbol(p->izq,node2);
  37.         }else{
  38.             return esSubArbol(p->der,node2);
  39.         }
  40.     }
  41.     return 0;
  42. }
  43.  
  44. int sonIguales(TNode *node1, TNode *node2){
  45.    
  46.     if(node1 == NULL && node2 == NULL)
  47.         return 1;
  48.     else if(node1 == NULL && node2 != NULL)
  49.         return 0;
  50.     else if(node1 != NULL && node2 == NULL)
  51.         return 0;
  52.  
  53.     if(node1->info == node2->info)
  54.         return (sonIguales(node1->izq,node2->izq) && sonIguales(node1->der,node2->der));
  55.     return 0;
  56. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement