重建二叉树
来源:互联网 发布:怎样开发app软件 编辑:程序博客网 时间:2024/06/03 22:03
- 题目描述:
输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树。假设输入的前序遍历和中序遍历的结果中都不含重复的数字。例如输入前序遍历序列{1,2,4,7,3,5,6,8}和中序遍历序列{4,7,2,1,5,3,8,6},则重建二叉树并输出它的后序遍历序列。如果题目中所给的前序和中序遍历序列不能构成一棵二叉树,则输出”No”。
给出中序和前序我们可以用递归的方式重建二叉树
代码如下:<span style="font-size:18px;">BiNode *buildTree(int *pre,int *inorder,int n)//n表示个数{ if(n==0) return NULL; BiNode * root=new BiNode; int rdata=pre[0]; root->data=rdata;//前序的第一个是根节点 root->lchild=NULL; root->rchild=NULL; int i; for(i=0;i<n;i++) { if(inorder[i]==rdata)//表示找到了根结点 break; } if(i==n)//表示没有找到。 { f++; return NULL; } //左子树个数为i个,右了子树个数是n-i-1; if(i>0) root->lchild=buildTree(pre+1,inorder,i); if(n-1-i>0) root->rchild=buildTree(pre+i+1,inorder+i+1,n-1-i); return root; }</span>
1 0
- 3.9重建二叉树
- 重建二叉树
- 二叉树重建
- 二叉树重建
- 二叉树的重建
- 重建二叉树
- 重建二叉树
- 重建二叉树
- 重建二叉树
- 重建二叉树
- 重建二叉树
- 重建二叉树
- 重建二叉树
- 二叉树重建
- 二叉树重建
- 重建二叉树
- 重建二叉树
- 重建二叉树
- Mac上安装spark过程
- Python 进阶—— list 的头插和尾插
- 修改Tomcat的端口号
- Javascript:谈谈JS的全局变量跟局部变量
- LMS算法
- 重建二叉树
- Python 数据结构与算法——列表(链表,linked list)
- 图像处理与机器视觉网络资源收罗——倾心大放送
- (语法)一个学生成绩录入程序分
- java中的深度复制及浅复制
- 数据结构课设 公路村村通 (最小生成树prim算法)
- Android之ContentProvider与ContentResolver(简单Log版)
- xml
- Trick(四)——翻转字符串的实现