由双遍历序列构造二叉树
//由先序序列和中序序列构造二叉树BTNode *CreateBT1(char *pre,char *in,int n){//pre存放先序序列,in存放中序序列,n为二叉树的结点个数//算法执行后返回构造二叉链的根结点/********** Begin **********/BTNode *b; char *p; int k; if(n<=0)return NULL; b=(BTNode *)malloc(sizeof(BTNode)); //创建根结点 b->data=*pre; for(p=in;p<in+n;p++) //在中序中找等于*pre字符的位置k { if(*p==*pre) //pre指向根结点 { break; } } k=p-in; //确定根结点在in中的位置 b->lchild=CreateBT1(pre+1,in,k); //递归构造左子树 b->rchild=CreateBT1(pre+k+1,p+1,n-k-1); //递归构造右子树 return b; /********** End **********/}//由中序序列和后序序列构造二叉树BTNode *CreateBT2(char *post,char *in,int n){//post存放后序序列,in存放中序序列,n为二叉树的结点个数//算法执行后返回构造二叉链的根结点/********** Begin **********/BTNode *b; char r,*p; int k; if(n<=0)return NULL; r=*(post+n-1); //根结点值 b=(BTNode*)malloc(sizeof(BTNode)); //创建根结点 b->data=r; for(p=in;p<in+n;p++) //在in中查找根结点 { if(*p==r)break; } k=p-in; //k为根结点在in中的下标 b->lchild=CreateBT2(post, in, k); //递归构造左子树 b->rchild=CreateBT2(post+k, p+1, n-k-1); //递归构造右子树 return b; /********** End **********/}
由双遍历序列构造二叉树相关推荐
- educoder数据结构 树 第1关:由双遍历序列构造二叉树
目录 任务描述 编程要求 代码实现 任务描述 本关任务:实现 ConstructTree.cpp 里的TNode* InPreToTree(char *pa, char *ia, int p1, in ...
- 【LeetCode系列】从中序与后序遍历序列构造二叉树 从前序与中序遍历序列构造二叉树...
关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 105. 从前序与中序遍历序列构造二叉树 根据一棵树的前序遍历与中序遍历构造二叉树 ...
- 数组反向遍历ios_LeetCode106.从中序与后序遍历序列构造二叉树(Construct Binary Tree from Inor...)...
106. 从中序与后序遍历序列构造二叉树 根据一棵树的中序遍历与后序遍历构造二叉树. 注意: 你可以假设树中没有重复的元素. 例如,给出 中序遍历 inorder = [9,3,15,20,7]后序遍 ...
- 树与二叉树 | 实验3:由遍历序列构造二叉树
实验3:由遍历序列构造二叉树 二叉树构造定理: 定理7.1:任何n(n>0)个不同结点的二又树,都可由它的中序序列和先序序列唯一地确定. 定理7.2:任何n(n>0)个不同结点的二又树,都 ...
- leetcode 106. 从中序与后序遍历序列构造二叉树 c语言递归解法
如题: 根据一棵树的中序遍历与后序遍历构造二叉树. 注意: 你可以假设树中没有重复的元素.例如,给出 中序遍历 inorder = [9,3,15,20,7] 后序遍历 postorder = [9, ...
- 105从前序与中序遍历序列构造二叉树 106 从中序与后序遍历序列构造二叉树 (递归 + 哈希)
引言 这两道题主要是考察二叉树遍历的掌握,即由前序和中序推出原二叉树,由后序和中序推出原二叉树,这里先来说一下推导过程: 前序和中序 知道前序遍历和中序遍历,如何推原二叉树?(直接是结论,可以自行推导 ...
- [Leetcode][第106题][JAVA][ 从中序与后序遍历序列构造二叉树][分治][递归]
[问题描述][中等] [解答思路] public class Solution {public TreeNode buildTree(int[] inorder, int[] postorder) { ...
- [Leedcode][JAVA][第105题][从前序与中序遍历序列构造二叉树][栈][递归][二叉树]
[问题描述][中等] 根据一棵树的前序遍历与中序遍历构造二叉树.注意: 你可以假设树中没有重复的元素.例如,给出前序遍历 preorder = [3,9,20,15,7] 中序遍历 inorder = ...
- [leetcode]从中序与后序/前序遍历序列构造二叉树
从中序与后序遍历序列构造二叉树 根据一棵树的中序遍历与后序遍历构造二叉树. 注意: 你可以假设树中没有重复的元素. 例如,给出 中序遍历 inorder = [9,3,15,20,7] 后序遍历 po ...
最新文章
- 求数组最大数,该数为数组中某两个数相加
- python seek到指定行_python文件操作seek()偏移量,读取指正到指定位置操作
- 使用python的butter带通滤波器时出现RuntimeWarning
- B站推出“锤人类”作品试运行管理办法 将减少推荐争议视频
- python2没有pip命令_解决Windows下python和pip命令无法使用的问题
- 2017年商业智能的6大趋势
- #pragma warning(disable 4786)
- IDEA中Activate Power Mode插件 取消抖动
- 【历史上的今天】11 月 29 日:世界上第一个街机游戏;真空管的发明者诞生;武汉大学建校
- Spring(三) 表单页面处理
- 跑实验_word2vector词向量实现_基于搜狗新闻预料+维基百科
- 最近越来越当心,是不是自己真的老了。。。
- vs项目文件夹进行分类管理
- LCD12864 菜单部分编写
- 千锋android培训学院!双非渣本Android四年磨一剑,真香!
- Scale-Equalizing Pyramid Convolution for Object Detection论文阅读
- 用计算机来谈生僻字,语义搜索及框计算:从百度查生僻字谈起
- TIOBE12月编程语言排行榜出炉!Java第一,有人要失业?
- 号称硬核厨师的美食作家,让千万Z世代爱上了做菜!
- ThreadLocal什么时候会出现OOM的情况?为什么?
热门文章
- 测试日常工作中需要具备哪些知识和能力,在需求评审时需要考虑哪些方面,在技术方面评审时需要考虑哪些方面,从什么方面进行设计测试用例
- idea打开项目时,文件左下角显示橙色J
- 微信小程序的wxs用法
- OpenCV中CV_RGB2GRAY和CV_BGR2GRAY的区别
- 从中粮到克明,五谷道场还有逆袭机会吗?
- cpp移植到ros系统
- 在Qt中使部分组件透明化
- element table透明化及样式处理(CSS)
- python3 with_Python3 startswith()方法
- RocketMQ-第2章_中级