二叉搜索树的后序遍历序列
2015-09-20 23:57
246 查看
题目描述
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。树的后序遍历的最后一个值为树根,然后根据树根的值和二叉搜索树的性质:左子树的值小于树根,右子树的值大于树根 可以从剩余的序列中找出属于左子树的序列和属于右子树的序列,然后再用同样的方法判断左子树和右子树是不是二叉搜索树即可。
bool b(vector<int>sequence, int l, int r){ if(l >= r) return true; int i = l; while(i < r && sequence[r] > sequence[i]) i++; for (int j = r - 1; j >= i; --j) if(sequence[j] < sequence[r]) return false; return b(sequence, l, i-1) && b(sequence, i, r-1); } bool VerifySquenceOfBST(vector<int> sequence) { if(!sequence.size()) return false; return b(sequence, 0, sequence.size()-1); }
相关文章推荐
- 第23本:《棋与人生》
- 第22本:《拖延心理学》
- 第22本:《拖延心理学》
- 为什么说真理掌握在少数人手中
- hibernate注解笔记
- redis实战之使用redis保存最近浏览的商品数据
- 第一个C#程序
- 在命令行环境Java程序调用导入的jar包中的类
- mysqlnd cannot connect to MySQL 4.1+ using the old insecure authentication
- 第19本:《无价》
- 第21本:《上帝掷骰子吗?》
- 绽放你的美丽-java20年
- codesnitch调试wince内存泄露
- Spring运行机制
- 第19本:《无价》
- 第21本:《上帝掷骰子吗?》
- 第20本:《拖延心理学》
- 安装openCV,测试时出现mvscr120d.dll文件丢失
- Cookie和Session补充
- JavaEE-Hibernate入门笔记