中序后序建二叉树
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实现
通过遍历序列构造二叉树(扩展二叉树的先序先序和中序后序和中序层序和中序)附可执行完整代码
输入后序和中序,构造二叉树,并输出该二叉树的层序前序中序后序遍历结构;输入后序和中序,构造二叉树,并输出该二叉树的层序前序中序后序遍历结构