博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于visual Studio2013解决面试题之0208二叉搜索树后序遍历序列
阅读量:5032 次
发布时间:2019-06-12

本文共 1158 字,大约阅读时间需要 3 分钟。



题目

解决代码及点评

 
 
 
 
 
/*	给出一个数组,判断该数组是否为二叉搜索树的后序遍历	后序遍历是先遍历左子树,再遍历右子树,最后访问根节点	所以,后序遍历的特点是,最后一个元素是根节点	在数组剩下的部分里,某连续的部分P1小于根节点,而某连续的部分P2全部大于根节点	对P1和P2来说,分别是两个子树的后序遍历,因此使用递归即可*/#include 
using namespace std;/* 判断是否后序遍历序列 */static bool VerifyArrayOfBST(int* a, int len){ int root = a[len - 1]; // 最后一个节点是根节点 int i, j; bool result; // 对于只有小于两个节点的树来说,我们认为其是后序遍历序列 if (len <= 2) return true; // 循环找到第一个大于根节点的下标 for (i = 0; i < len-1; ++i) { if (a[i] > root) break; } // 在这个大于根节点的下标后面的所有数据,应该都大于root // 否则它不是后序遍历序列 for (j = i; j < len - 1; ++j) { if (a[j] < root) return false; } // 递归的检测左子树 result = VerifyArrayOfBST(a, i); // 如果左子树成功,则检测右子树,并返回 if (result) return VerifyArrayOfBST(a + i, len - i - 1); // 左子树都不成功,则返回false return false;}// 测试的main函数int main(){ int a[]={1,6,4,3,5}; int a1[]={7,6,4,3,5}; if (VerifyArrayOfBST(a,5)==true) { cout<<"a是搜索树"<

代码下载及其运行

代码下载地址:http://download.csdn.net/detail/yincheng01/6704519

解压密码:c.itcast.cn

下载代码并解压后,用VC2013打开interview.sln,并设置对应的启动项目后,点击运行即可,具体步骤如下:

1)设置启动项目:右键点击解决方案,在弹出菜单中选择“设置启动项目”

2)在下拉框中选择相应项目,项目名和博客编号一致

3)点击“本地Windows调试器”运行

程序运行结果






转载于:https://www.cnblogs.com/niulanshan/p/6175171.html

你可能感兴趣的文章
[HNOI2012]永无乡 线段树合并
查看>>
Spring整合hibernate:3、使用XML进行声明式的事务管理
查看>>
SqlServer之Convert 函数应用格式化日期(转)
查看>>
软件测试领域中的10个生存和发展技巧
查看>>
Camera前后摄像头同时预览
查看>>
HDU 1856
查看>>
课堂作业01--架构师的职责
查看>>
iOS计算富文本(NSMutableAttributedString)高度
查看>>
2017/09/15 ( 框架2)
查看>>
Centos下源码安装git
查看>>
gulp-rev-append md5版本号
查看>>
IO流之File类
查看>>
sql 基础语句
查看>>
CF717A Festival Organization(第一类斯特林数,斐波那契数列)
查看>>
oracle直接读写ms sqlserver数据库(二)配置透明网关
查看>>
控件发布:div2dropdownlist(div模拟dropdownlist控件)
查看>>
Oracle composite index column ordering
查看>>
ActiveReports 报表控件官方中文入门教程 (3)-如何选择页面报表和区域报表
查看>>
kaggle竞赛
查看>>
区块链入门教程
查看>>