Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include "arbol.h"
- void ObtenerArbol(int preorden[],int inorden[],int nelem,TBinaryTree *T){
- if (nelem==0)
- return;
- if (nelem==1){
- insert(T,preorden[0]);
- return;
- }
- insert(T,preorden[0]);
- int auxpre1[20]={0};
- int auxin1[20]={0};
- int auxpre2[20]={0};
- int auxin2[20]={0};
- int i=0;
- //primer arreglo
- while(inorden[i]!=preorden[0]){
- auxin1[i]=inorden[i];
- i++;
- }
- for (int k=0;k<i;k++)
- auxpre1[k]=preorden[k+1];
- //segundo
- for (int k=0;k<nelem-i-1;k++){
- auxpre2[k]=preorden[k+i+1];
- auxin2[k]=inorden[k+i+1];
- }
- ObtenerArbol(auxpre1,auxin1,i,T);
- ObtenerArbol(auxpre2,auxin2,nelem-i-1,T);
- }
- int main(){
- TBinaryTree T;
- int preorden[20]={18, 12, 5, 9, 28, 20, 35};
- int inorden[20]={5, 9, 12, 18, 20, 28, 35};
- init_tree(&T);
- ObtenerArbol(preorden,inorden,7,&T);
- preorder(T.root);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment