判断一棵树是否为二叉排序树
来源:互联网 发布:将军在上 知乎 编辑:程序博客网 时间:2024/06/07 08:02
概要
由于二叉排序树的中序遍历时得到的一定是个一个升序序列,我们可以根据这一性质,利用中序遍历进行判定。
算法
1)设置全局变量max为无穷小。
2)若树为空,则返回true。
3)否则递归判断左子树是否为二叉排序树,并用flag1保存结果。
3)若flag1为假或者根节点关键字小于等于左子树的关键字,则返回false。
4)否则递归判断右子树是否为二叉排序树,并用flag2保存结果。
5)返回flag2。
//判断是否为二叉排序树 bool Judge(BinaryTree* root,int& MAX){ if(root == NULL){//树为空则为二叉排序树 return true; } bool bst_l,bst_r; bst_l = Judge(root->lchild,MAX);//判断左子树是否为二叉排序树 if(!bst_l || MAX >= root->data){ return false; } MAX = root->data; bst_r = Judge(root->rchild,MAX);//判断右子树是否为二叉排序树 return bst_r;}
后记
关于二叉树的基本遍历操作相关请详见博客:二叉树的构建及其遍历算法
关于二叉排序树的基本操作相关请详见博客:二叉搜索树
阅读全文
1 0
- 判断一棵树是否为二叉排序树
- 判断一棵树是否为二叉排序树的两种方法
- 如何判断一棵树是否为二叉排序树 C版
- 第十四周-判断是否为二叉排序树
- 判断二叉树是否为二叉排序树
- 判断二叉树是否为二叉排序树
- 判断二叉树是否为二叉排序树
- 判断二叉排序树是否相同
- 判断给定的二叉树是否为二叉排序树
- 编写判断给定二叉树是否为二叉排序树的函数
- 判断给定的二叉树是否为二叉排序树
- 判断给定的二叉树是否为二叉排序树
- 判断一颗二叉树是否为二叉排序树
- 第十四周--项目3判断是是否为二叉排序树
- 第十四周项目6 判断是否为二叉排序树
- 判断一个数组是否为二叉排序树的后续遍历
- 第十四周项目3--判断是否为二叉排序树
- 第十四周 项目3--判断是否为二叉排序树
- MongoDB启动提示:由于目标计算机积极拒绝,无法连接
- Java多线程系列--【基础篇03】- Thread中start()和run()的区别
- Struts2执行流程
- Anaconda管理Python
- codevs 3143 二叉树
- 判断一棵树是否为二叉排序树
- spring4.1+hibernate 报"缺少类com.machange.v1...."的解决办法
- 第二届全国智能制造(中国制造2025)创新创业大赛 人工智能专项赛决赛暨人工智能前沿趋势论坛即将来袭
- 逆波兰表达式(此篇文章加上上篇栈文章,即可完美实现内容)
- Linux环境在安装Python3
- SPOJ-tree:Query on a tree (树链剖分)
- virtualbox笔记本Network is unreachable解决方法
- Semslin 3D打印固件 项目日志节选(二)—— 了解开源生态
- 三(二)mybatis接口映射sql使用注解