中序后序建二叉树

Posted masteryan576356467

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了中序后序建二叉树相关的知识,希望对你有一定的参考价值。

 1 class tree
 2 private:
 3     struct TNode
 4         int date;
 5         TNode *lchild, *rchild;
 6     ;
 7 
 8 
 9     /*vector<int> post;
10     vector<int> in;*/
11 
12     int post[50];
13     int in[50];
14 
15 public:
16 
17 
18     tree()
19 
20 
21         int N;
22         cin >> N;
23         for(int i = 0; i < N; i++)
24             cin >> in[i];
25         
26         for(int i = 0; i < N; i++)
27             cin >> post[i];
28         
29 
30         TNode *T = createTree(0, N - 1, 0, N - 1);
31 
32         Print(T);
33 
34     
35 
36     TNode * createTree(int postL, int postR, int inL, int inR)
37 
38         if(postL > postR)
39             return NULL;
40         
41         TNode *root = new TNode;
42         root->date = post[postR];
43         int k;
44         for(k = inL; k <= inR; k++)
45             if(in[k] == post[postR])
46                 break;
47         
48         int numLeft = k - inL;
49         root->lchild = createTree(postL, postL + numLeft - 1, inL, k - 1);
50         root->rchild = createTree(postL + numLeft, postR - 1, k + 1, inR);
51         return root;
52     
53 
54 
55     
56 
57     ~tree() 
58 ;

 

以上是关于中序后序建二叉树的主要内容,如果未能解决你的问题,请参考以下文章

树二叉树遍历算法(深度优先广度优先遍历,前序中序后序层次)及Java实现

手撕二叉树的4种遍历:前序中序后序层序

手撕二叉树的4种遍历:前序中序后序层序

通过遍历序列构造二叉树(扩展二叉树的先序先序和中序后序和中序层序和中序)附可执行完整代码

剑指offer重建二叉树

输入后序和中序,构造二叉树,并输出该二叉树的层序前序中序后序遍历结构;输入后序和中序,构造二叉树,并输出该二叉树的层序前序中序后序遍历结构