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

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

  题目:输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是返回true,否则返回false。假设输入的数组的任意两个数字都互不相同。

  分析:在后序遍历中,最后一个数字是树的根节点的值。数组中前面的数字可以分为两个部分,第一个部分是左子树节点的值,他们都比根节点的值小;第二个部分是右子树节点的值,他们都比根节点的值大。因此从头遍历整个数组,当遇到一个大于根节点的数时,将前面的都划为左子树,继续遍历,如果后面有一个小于根节点的值,则不是后序遍历数组;如果后面的所有数都小于根节点的值,则继续递归遍历下去,代码如下(是根据在牛客网上给的函数原型写的):

1 bool VerifySquenceOfBST(vector
sequence) { 2 if(sequence.size()<=0) 3 return false; 4 return Judge(sequence,0,sequence.size()-1); 5 } 6 7 bool Judge(vector
sequence,int l,int r){ 8 int i=l,j; 9 for(;i
sequence[r])11 break;12 }13 for(j=i;j
0)20 leftJudge = Judge(sequence,0,i-2);21 if(i

 

转载于:https://www.cnblogs.com/yangrenzhi/p/5787886.html

你可能感兴趣的文章
关于cookie存取中文乱码问题
查看>>
mysql 多表管理修改
查看>>
group by order by
查看>>
Oracle学习之简单查询
查看>>
log4j配置
查看>>
linux 配置SAN存储-IPSAN
查看>>
java学习笔记之String类
查看>>
pymysql操作mysql
查看>>
Linux服务器删除乱码文件/文件夹的方法
查看>>
牛腩记账本core版本源码
查看>>
Word Break II
查看>>
UVA 11082 Matrix Decompressing 矩阵解压(最大流,经典)
查看>>
jdk从1.8降到jdk1.7失败
查看>>
一些关于IO流的问题
查看>>
mongo备份操作
查看>>
8 -- 深入使用Spring -- 3...1 Resource实现类InputStreamResource、ByteArrayResource
查看>>
硬件笔记之Thinkpad T470P更换2K屏幕
查看>>
一个关于vue+mysql+express的全栈项目(六)------ 聊天模型的设计
查看>>
【知识库】-数据库_MySQL 的七种 join
查看>>
.net 写文件上传下载webservice
查看>>