面试题24二叉搜索树的后序遍历序列
来源:互联网 发布:淘宝购买送货入户 编辑:程序博客网 时间:2024/06/08 05:32
面试题24:二叉搜索树的后序遍历序列
1.输入一个整数的数组,判断该数组是不是某棵二叉搜索树的后序遍历序列。假设输入的数组的任意两个数字互不相同。
分析:例如输入数组{5,7,6,9,11,10,8},则返回true,因为这个序列可以找到这样的一棵二叉搜索树满足条件,而对于序列{7,4,6,5}则找不到这样的二叉搜索树。
二叉搜索树的性质是,左子树的节点的值比根节点的值大,根节点的值小于右子树的节点的值。从后序遍历的结果来看,序列中最后一个节点应该是根节点,序列中比根节点小的值是左子树的节点,大的值是右子树的节点。然后下一步 就是对左右子树用同样的方法。
#include<iostream>using namespace std;bool VerifySquenceOFBST(int a[],int length){if(a==NULL||length<=0)return false;int root=a[length-1];//左子树小于根节点int i=0;for(;i<length-1;++i){if(a[i]>root)break;}//右子树大于根节点int j=i;for(;j<length-1;++j){if(a[j]<root)return false;}//判断左子树int left=true;if(i>0)left=VerifySquenceOFBST(a,i);//判断右子树int right=true;if(j<length-1)right=VerifySquenceOFBST(a+i,length-1-i);return (left&&right);}int main(){int a[]={5,7,6,9,11,10,8};int b[]={7,4,6,5};int ret=VerifySquenceOFBST(a,7);cout<<ret<<endl;int ret1=VerifySquenceOFBST(b,4);cout<<ret1<<endl;system("pause");return 0;}
阅读全文
0 0
- [剑指offer][面试题24]二叉搜索树的后序遍历序列
- 面试题24:二叉搜索树的后序遍历序列
- 【剑指offer】面试题24:二叉搜索树的后序遍历序列
- 剑指Offer:面试题24 二叉搜索树的后序遍历序列
- 面试题24:二叉搜索树的后序遍历序列
- 《剑指Offer》面试题24:二叉搜索树的后序遍历序列
- 剑指offer 面试题24—二叉搜索树的后序遍历序列
- 面试题24:二叉搜索树的后序遍历序列
- 面试题24二叉搜索树的后序遍历序列
- 剑指offer--面试题24:二叉搜索树的后序遍历序列--Java实现
- 【剑指Offer学习】【面试题24:二叉搜索树的后序遍历序列】
- 面试题24_二叉搜索树的后序遍历序列
- 剑指Offer面试题24(Java版):二叉搜索树的后序遍历序列
- 剑指offer_面试题24_二叉搜索树的后序遍历序列(递归)
- 剑指offer面试题24-二叉搜索树的后序遍历序列
- 面试题24二叉搜索树的后序遍历序列cpp
- 面试题24:二叉搜索树的后序遍历序列
- 面试题24:二叉搜索树的后序遍历序列
- 18121 排排坐看电影
- 第34章 连续时间系统零状态响应的求解
- JS中常用的输入输出
- 关于CSS布局的核心概念的快速入门指南
- 2013计算机视觉代码合集四
- 面试题24二叉搜索树的后序遍历序列
- 精品拍卖系统技术解析 拍卖会大厅
- tensorflow使用
- Fiddler工作原理
- NYOJ 113 字符串替换
- Java 二维数组的使用
- js实现倒计时
- JS中number数据类型
- 求助!!!求助啊!!!Android studio疯了...