6.二元查找树的后序遍历结果[PostOrderOfBST]
【题目】
输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。如果是返回true,否则返回false。
例如输入5、7、6、9、11、10、8,由于这一整数序列是如下树的后序遍历结果:
8
/ \
6 10
/ \ / \
5 7 9 11
因此返回true。
如果输入7、4、6、5,没有哪棵树的后序遍历的结果是这个序列,因此返回false。
【思路】
在后续遍历得到的序列中,最后一个元素为树的根结点。从头开始扫描这个序列,比根结点小的元素都应该位于序列的左半部分;从第一个大于跟结点开始到跟结点前面的一个元素为止,所有元素都应该大于跟结点,因为这部分元素对应的是树的右子树。根据这样的划分,把序列划分为左右两部分,我们递归地确认序列的左、右两部分是不是都是二元查找树。
【代码】
1
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
bool VerifySequenceOfBST(int a[], int n) { if (NULL == a || n < 0) return false; //if (n==1) //return true; int root = a[n - 1]; int j = i; bool left = true; bool right = true; return (left && right); |
【参考】
http://zhedahht.blog.163.com/blog/static/25411174200725319627/
转载于:https://www.cnblogs.com/hellogiser/p/3738437.html
6.二元查找树的后序遍历结果[PostOrderOfBST]相关推荐
- 程序员面试题精选100题(06)-二元查找树的后序遍历结果[数据结构]
题目:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果.如果是返回true,否则返回false. 例如输入5.7.6.9.11.10.8,由于这一整数序列是如下树的后序遍历结果: 8 ...
- 判断整数序列是不是二元查找树的后序遍历结果
题目:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果. 如果是返回true,否则返回false. 例如输入5.7.6.9.11.10.8,由于这一整数序列是如下树的后序遍历结果: 8 ...
- 二元查找树的后序遍历结果
题目:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果.如果是返回 true ,否则返回 false . 例如输入5.7.6.9.11.10.8,由于这一整数序列是如下树的后序遍历结果: ...
- 9判断整数序列是不是二元查找树的后序遍历结果
转载请注明出处:http://www.cnblogs.com/wuzetiandaren/p/4252095.html 声明:现大部分文章为寻找问题时在网上相互转载,此博是为自己做个记录记录,方便自己 ...
- 判断某个数列是不是二元查找树的后序遍历。
给定一个数组序列,判断这个数列是不是二叉查找树的后序遍历.后序遍历是先左节点,再右节点,最后根节点.二叉查找树定义为节点的左子树都小于该节点,该节点的右子树都大于该节点.如果是后序遍历,那么根是最后一 ...
- leetCode 1110 删点成林(树,后序遍历)
题目链接:点击查看 题目描述: 给定一个整数二叉树和一些整数,求删掉这些整数对应的节点后,剩余的子树. 输入输出: 输入:root = [1,2,3,4,5,6,7], to_delete = [3, ...
- XDOJ 363 输出快速排序递归算法隐含递归树的后序遍历序列 AC
像我这样的菜鸡也没有什么能输出的,好像我写题解也不算输出. 最近期末了,写数据结构实验的时候,这个题写了挺久的,搞出来记录一下. 输出快速排序递归算法隐含递归树的后序遍历序列 描述: 快速排序递归算法 ...
- 后序遍历c语言程序,C++对树进行后序遍历的代码
下面是编程之家 jb51.cc 通过网络收集整理的代码片段. 编程之家小编现在分享给大家,也给大家做个参考. #include #include struct Node{ Node *lchild;/ ...
- 《剑指offer》-- 从上往下打印二叉树、二叉搜素树的后序遍历、二叉树中和为某一值的路径、二叉树与双向链表
一.从上往下打印二叉树: 1.题目: 上往下打印出二叉树的每个节点,同层节点从左至右打印. 2.解题思路: 用arraylist模拟一个队列来存储相应的TreeNode. 3.代码实现: public ...
最新文章
- why do you need that a awesome linkedin profile
- boost::lexical_cast模块将创建一个to_long_double方法,将 Boost.Variant 的值转换为long double
- java并发编程之美-阅读记录7
- LeetCode——BFS
- 2020牛客国庆集训派对day4 What Goes Up Must Come Down
- [学习笔记] 伸展树splay详解+全套模板+例题[Luogu P3369 【模板】普通平衡树]
- 克罗谈投资策略04_感觉与现实
- Python-file -note
- (1)深度学习_梯度下降与优化
- 【图像配准】基于matlab GUI光流场模型医学图像配准【含Matlab源码 747期】
- 尚硅谷大数据Hadoop(1)技术之Hadoop(入门)
- 通过一个具体的例子,讲解 SAP Cloud Platform Integration(CPI) 的使用方法
- 汇编语言指令功能总结
- 中国计量大学matlab,计量经济学及matlab.pdf
- 5不触发系统键盘_防盗报警系统基础知识汇总
- python——spilt和strip用法
- android+双卡imei,以编程方式在Android中为双SIM卡检索IMEI号码
- matlab symadd,信号调理器设计—大二暑期信号分析实习报告精选多篇
- 【转自知乎】软件实施工程师-简历范文,【工作经历+项目经验+专业技能+自我评价】怎么写
- 奇怪的日常 [ 2 ]:Python下合成萝莉/御姐音
热门文章
- 手写简版spring --4--注入属性和依赖对象
- 日常生活小技巧 -- 文件对比工具 Beyond Compare
- UNIX再学习 -- TCP/UDP 客户机/服务器
- Linux动态频率调节系统CPUFreq
- c#.net课程设计:ZCMU通讯录(待更新)
- hdu6383(2018 “百度之星”程序设计大赛 - 初赛(B))
- 互联网亿级日志实时分析平台,一个码农半小时就可以搞定,只因ELK
- 谈谈AOP应用层切面设计
- 【问链财经-区块链基础知识系列】 第四十六课 区块链如何作用于医药行业
- 区块链基础知识系列 第二课 区块链共识算法