Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- int search(int post[],int x, int start, int end){
- int index=-1;
- for(int i=start;i<end;i++){
- if(post[i]==x){
- return i;
- }
- }
- return index;
- }
- Node* buildTree(int pre[], int post[], int preS, int preE,int posS, int posE){
- if(preS>preE){
- return NULL;
- }
- if(preS==preE){
- return pre[preS];
- }
- int index=search(post,posS,posE,pre[preS]);
- int preLS=preS+1;
- int preLE=postLE-postLS+preLS;
- int preRS=preLE+1;
- int preRE=preE;
- int postLS=posS;
- int postLE=index;
- int postRS=index+1;
- int postRE=posE-1;
- Node *root=new newNode(pre[preS]);
- root->left=buildTree(pre,post,preLS,preLE,postLS,postLE);
- root->right=buildTree(pre,post,preRS,preRE,postRS,postRE);
- return root;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement