判断二叉排序树的后序遍历是否合法
来源:互联网 发布:有什么网络兼职可以做 编辑:程序博客网 时间:2024/05/17 22:24
思想:通过根节点将序列划分为左子树序列和右子树序列,他们必须满足的条件是:左子树序列中的所有值小于根节点,右子树中所有值大于根节点,然后递归判断左子树序列和右子树序列。
#include<iostream>
using namespace std;
bool VerifySquenceOfBST(int sequence[], int length)
{
if (sequence == NULL || length <=0)
return false ;
int root = sequence[length -1];
//在二叉搜索树中左子树的结点小于根结点
int i = 0;
for(; i < length -1;++ i )
{
if ( sequence [ i ]> root )
// break ;
{
break;
return false ;
}
}
//在二叉搜索树中右子树的结点大于根结点
int j = i;
for(;j < length - 1;++j)
{
if (sequence[j] < root)
{
break;
return false ;
}
}
//判断左子树是不是二叉搜索树
bool left = true ;
if(i > 0)
left = VerifySquenceOfBST(sequence,i);
//判断右子树是不是二叉搜索树
bool right = true ;
if (i < length - 1)
right = VerifySquenceOfBST(sequence + i ,length - i -1);
return(left && right);
}
int main()
{
int sequence[] = {4,8,6,12,16,14,10};
if(VerifySquenceOfBST(sequence,7))
{
cout<<"nimei"<<endl;
}
else
{
cout<<"daf"<<endl;
}
return 0;
}
- 判断二叉排序树的后序遍历是否合法
- 14 判断给定的二叉排序树后序遍历序列是否合法
- 判断二叉搜索树的后序遍历序列是否合法
- 判断二叉树的后序遍历序列是否合法
- 二叉搜索树的后序遍历序列(判断后序遍历序列是否合法)
- 二叉排序树后序判断
- 1367判断一个数组是否为二叉排序树的后序遍历结果
- 【2013创新工场电话面试】判断一个数组是否为二叉排序树的后序遍历结果
- 二叉排序树的建立 前序 中序 后序 遍历
- 二叉排序树的中序遍历
- 二叉排序树的创建,以及前序、中序、后序遍历的递归实现
- 判断一个数组是否为二叉排序树的后续遍历
- 二叉排序树,二叉树的中序,先序,后序遍历
- 二叉排序树的建立、先序/中序/后序遍历、查找
- 二叉树的创建、二叉排序树、前序、中序、后序、层次遍历
- 根据输入的数据,建立二叉排序树,并求先、中、后序遍历
- 确定后序遍历二叉树是否构成二叉排序树
- 二叉排序树(插入操作与前、中、后序遍历)
- TCP和UDP协议发送数据包的大小方面的知识介绍
- Android AlertDialog 提示设置网络
- 程序员面试宝典字符串中连续出现次数最多的子串
- xcode 开发中遇到的一些警告
- 10款鲜为人知的PHP框架
- 判断二叉排序树的后序遍历是否合法
- 菜鸟译文(二)——使用Java泛型构造模板方法模式
- 1004 zoj
- 计算机视觉、机器学习相关领域论文和源代码
- memset用法详解与实现
- 【数值分析】迭代法解方程:牛顿迭代法、Jacobi迭代法
- sqlserver字段类型详解
- 模拟Excel冻结表格
- JNI官方规范中文版——如何使用JNI中的global reference和local reference