二叉搜索树的后序遍历序列
来源:互联网 发布:手机酷狗音乐网络异常 编辑:程序博客网 时间:2024/04/26 00:46
/* *题目描述: *输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。 *如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。 *思路:利用最后一个元素将树划分为左右两颗字树,根元素一定会比左子树大,比右子树小 * 对分的的左右字树进行递归判断。*/#include "stdafx.h"#include "vector"using namespace std;bool check_tree(vector<int> sequence, int l, int r) {if (l<r) {int z = r - l;int root;int i;int flag = 1;for (i = l; i<r; i++)if (sequence[i]>sequence[r - 1])break;root = i;for (i = l; i<root; i++)if (sequence[i]>sequence[r - 1])flag = 0;for (i = root; i<r; i++)if (sequence[i]<sequence[r - 1])flag = 0;if (flag == 0)return false;if (root != r )flag = flag && check_tree(sequence, l, root); //防止重复的递归,如果root==r的话证明这个区间已经被判断过了if(l != root)flag = flag && check_tree(sequence, root, r);return flag;}return true;}int main(){vector<int> v = { 1,4,3,7,9,8,5 };printf("%d\n", check_tree(v, 0, 7));}
0 0
- 二叉树------二叉搜索树的后序遍历序列
- 【树5】二叉搜索树的后序遍历序列
- 题目10:二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 题目1367:二叉搜索树的后序遍历序列
- 1367:二叉搜索树的后序遍历序列 @jobdu
- 二叉搜索树的后序遍历序列
- Q24:二叉搜索树的后序遍历序列
- 剑指offer:二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 【剑指offer】二叉搜索树的后序遍历序列
- 题目1367:二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- js异步加载三种方案
- 博客搬家
- JQuery日历插件My97DatePicker日期范围限制
- POJ 2663 && HDU 1143 Tri Tiling(dp)
- Odoo环境下Ubuntu服务器性能优化--参数调整
- 二叉搜索树的后序遍历序列
- Maven依赖继承
- Android 常用辅助函数
- 可用的 SublimeText3 注册码
- Fresco 源码浅析
- Android 支持表情功能
- JAVA中String s = "hello"和String s = new String("hello")有什么区别啊?
- 1588时间同步协议
- 最小二乘拟合&基于RANSAC的直线拟合&椭圆拟合