karlangadas

TREE: 9TAD

Nov 14th, 2016
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 0.89 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include "arbol.h"
  4. void ObtenerArbol(int preorden[],int inorden[],int nelem,TBinaryTree *T){
  5.     if (nelem==0)
  6.         return;
  7.     if (nelem==1){
  8.         insert(T,preorden[0]); 
  9.         return;
  10.     }
  11.     insert(T,preorden[0]);
  12.  
  13.     int auxpre1[20]={0};
  14.     int auxin1[20]={0};
  15.     int auxpre2[20]={0};
  16.     int auxin2[20]={0};
  17.    
  18.     int i=0;
  19.     //primer arreglo
  20.     while(inorden[i]!=preorden[0]){
  21.         auxin1[i]=inorden[i];
  22.         i++;
  23.     }
  24.     for (int k=0;k<i;k++)
  25.         auxpre1[k]=preorden[k+1];
  26.  
  27.     //segundo
  28.     for (int k=0;k<nelem-i-1;k++){
  29.         auxpre2[k]=preorden[k+i+1];
  30.         auxin2[k]=inorden[k+i+1];
  31.     }
  32.     ObtenerArbol(auxpre1,auxin1,i,T);
  33.     ObtenerArbol(auxpre2,auxin2,nelem-i-1,T);
  34. }
  35. int main(){
  36.     TBinaryTree T;
  37.     int preorden[20]={18, 12, 5, 9, 28, 20, 35};
  38.     int inorden[20]={5, 9, 12, 18, 20, 28, 35};
  39.    
  40.     init_tree(&T);
  41.  
  42.     ObtenerArbol(preorden,inorden,7,&T);
  43.     preorder(T.root);
  44.     return 0;
  45. }
Advertisement
Add Comment
Please, Sign In to add comment