判断整数序列是不是二元查找树的后序遍历结果

题目:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。

如果是返回true,否则返回false。

例如输入5、7、6、9、11、10、8,由于这一整数序列是如下树的后序遍历结果:

8

/ \

6 10

/ \ / \

5 7 9 11

因此返回true。

如果输入7、4、6、5,没有哪棵树的后序遍历的结果是这个序列,因此返回false。

  

思路:后序遍历结果数组的最后一个元素为根节点。

根节点的左子树全部小于根节点

根节点的右子树全部大于根节点

递归遍历左右子树是否二叉树

 1 bool IsSearchBinaryTree( int a[ ], int n )  // a 为序列,n 为序列个数
 2 {
 3     if ( n == 0 )
 4         return true;
 5     if ( n < 3 )
 6         return false;
 7     if ( n == 3 )
 8     {
 9         if ( a[ 0 ] < a[ 2 ] && a[ 1 ] > a[ 2 ] )
10             return true;
11         else
12             return false;
13     }
14 
15     for ( int i = 0; i < n-1; i++ )    // i 在这里是下标,主意当if条件不满足跳出时,i 是个数
16         if ( a[ i ] > a[ n-1 ] )
17             break;
18     
19     return ( IsSearchBinaryTree( a, i ) && IsSearchBinaryTree( a + i, n-i-1 )  );   // i 是左子树的元素个数,n-i-1是右子树的元素个数
20 }

转载于:https://www.cnblogs.com/kevinGaoblog/archive/2012/04/06/2434784.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/404269.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

iOS 从相机或相册获取图片并裁剪

/load user image - (void)UesrImageClicked { UIActionSheet *sheet; // 判断是否支持相机 if([UIImagePickerController isSourceTypeAvailable:UIImagePickerControllerSourceTypeCamera]) { sheet [[UIActionSheet alloc] initWithTitle:"选择图像" delega…

【EWSA无线路由密码破解工具 中文特别版下载】含教程及字典(弱口令生日特殊符号等)

From: http://softbbs.zol.com.cn/1/32_8011.html Elcomsoft Wireless Security Auditor简称EWSA,是一款极为强悍的路由密码破解工具&#xff0c;支持CPU、GPU调用破解&#xff0c;速度比但CPU破解厉害很多&#xff0c;加上此次分享的EWSA字典下载&#xff0c;可以帮助大家更好…

[Redux/Mobx] 什么是单一数据源?

[Redux/Mobx] 什么是单一数据源&#xff1f; Redux的store.getState只能得到一个数据源&#xff0c;通常这是一个对象&#xff0c;通常这也是React App中的唯一Redux数据源&#xff0c;这个state对象中的属性值通过combineReducer整合了子Reducer返回的state的值 个人简介 …

VMware vSphere简介

vSphere是VMware推出的基于云的新一代数据中心虚拟化套件&#xff0c;提供了虚拟化基础架构、高可用性、集中管理、监控等一整套解决方案 现VMware vSphere 版本为5.0&#xff0c;组件如下&#xff1a; ESXi&#xff1a;物理服务器的虚拟化层&#xff0c;它将处理器、内存、存储…

RESTful API 设计指南 (转)

RESTful API 设计指南 2016-02-23 ImportNew(点击上方公号&#xff0c;可快速关注) 作者&#xff1a;阮一峰 链接&#xff1a;http://www.ruanyifeng.com/blog/2014/05/restful_api.html 网络应用程序&#xff0c;分为前端和后端两个部分。当前的发展趋势&#xff0c;就是前端设…

find:查找文件或目录

From: http://yhj1065.blog.163.com/blog/static/198002172007111810502948/ 功能说明&#xff1a; find指令可以在系统中查找你想要的任何文件或目录&#xff0c;你可以通过不同的参数来查找你想要的。该指令也是系统管理员最常用、最强大、最方便的查找文件和目录的指令。 基…

[Redux/Mobx] 为什么redux能做到局部渲染呢?

[Redux/Mobx] 为什么redux能做到局部渲染呢&#xff1f; reducer从根往最子级的reducer中间各层总是返回一个新的state&#xff0c;这样的话&#xff0c;就会引起组件的大范围的re-render&#xff0c;但是这是可避免的 合理的利用selector&#xff1a;在connect函数中的第一个…

[zz]Linux操作系统下三种配置环境变量的方法

个人的总结: 设置了/etc/profile 和 ~/.bashrc 之后&#xff0c;使用了source 命令&#xff0c;是可以echo添加的变量&#xff0c;但是用getenv读不出来&#xff0c;然后使用env命令也显示不出来&#xff0c;是因为没有export!! ---------------------------------------------…

poj 2976 基础01分数规划

这个题算是01分数规划的最基本的应用了&#xff0c; 01分数规划是给你n对数(a1, b1)....(an, bn), 然后让你选择一些数对&#xff0c; 使得sigma(ai)/sigma(bi)最大。这里附上讲解一份&#xff0c; http://blog.csdn.net/hhaile/article/details/8883652&#xff0c; 代码如下&…

删除(.svn)目录

windows 平台&#xff1a; Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN] "Delete SVN Folders"[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Folder\shell\DeleteSVN\command] "cmd.exe /c \"TITLE Remov…

[Redux/Mobx] 举例说明怎么在redux中定义action?

[Redux/Mobx] 举例说明怎么在redux中定义action&#xff1f; 利用actionCreator // 用户选择需要显示的subredditexport const SELECT_SUBREDDIT SELECT_SUBREDDITexport function selectSubreddit(subreddit) {return {type: SELECT_SUBREDDIT,subreddit} } 个人简介 我是…

模式——工程化实现及扩展(设计模式Java 版)

--模式——工程化实现及扩展&#xff08;设计模式Java 版&#xff09;王翔&#xff0c;孙逊著ISBN 978-7-121-15638-02012年4月出版定价&#xff1a;59.00元16开416页内 容 简 介设计模式不是一门适合空谈的技术&#xff0c;它来自于开发人员的工程实践又服务于工程实践。本书并…

异构计算

异构计算的英文名称是Heterogeneouscomputing&#xff0c;主要是指使用不同类型指令集和体系架构的计算单元组成系统的计算方式。常见的计算单元类别包括CPU、GPU等协处理器、DSP、ASIC、FPGA等。 有点看不懂&#xff0c;没关系&#xff0c;有位大神给了一个通俗的解释&#xf…

[Redux/Mobx] Redux怎样设置初始状态?

[Redux/Mobx] Redux怎样设置初始状态&#xff1f; redux包里面的createStore方法的第二个可选参数即可设置state的初始值在定义从根到子的reducer时&#xff0c;可以通过默认参数的方式定义state的初始值 个人简介 我是歌谣&#xff0c;欢迎和大家一起交流前后端知识。放弃很…

由Qt中qApp想到的(这是单例模式么???)

From: http://blog.csdn.net/qq575787460/article/details/7880972 学Qt时&#xff0c;发现只要包含头文件QApplication或者QCoreapplication&#xff0c;就用使用qApp&#xff0c;指向一个当前实例。 查看源码发现qApp是个宏&#xff1a; QApplication中&#xff1a;#define q…

根据网页地址获取页面内容

public JSONObject urlConn(String urlStr, String portStr){ String port getPort(portStr); urlStr (urlStr ! null)?(host port "/?" urlStr):(host port); int responseCode; try { url new URL(urlStr); conn (HttpURLConnection) url.openConnection…

bootstrap基础学习十篇

bootstrap字体图标&#xff08;Glyphicons&#xff09; a.什么是字体图标 字体图标是在 Web 项目中使用的图标字体。虽然&#xff0c;Glyphicons Halflings 需要商业许可&#xff0c;但是您可以通过基于项目的 Bootstrap 来免费使用这些图标。 b.bootstrap自带字体图标文件结构…

Python 用hashlib求中文字符串的MD5值

From&#xff1a; http://blog.csdn.net/haungrui/article/details/6959340 使用过hashlib库的朋友想必都遇到过以下的错误吧&#xff1a;“Unicode-objects must be encoded before hashing”&#xff0c;意思是在进行md5哈希运算前&#xff0c;需要对数据进行编码。而且在不…

[Redux/Mobx] Mobx的设计思想是什么

[Redux/Mobx] Mobx的设计思想是什么 依赖收集。在Mobx中&#xff0c;定义了observable的属性&#xff0c;mobx会自动跟踪这个属性值的变化&#xff1b;在用了mobx与react的桥接库mobx-react之后&#xff0c;这种跟踪关系会体现了视图上&#xff0c;JSX依赖的observable属性值变…

csu 1008 - Horcrux

不得不表示&#xff0c;能用栈来做的题目前对我来说都很费解&#xff0c;这题又是抄的&#xff0c;来自校友JMDWQ&#xff0c;只不过把C改成了C。开始时我用的是暴搜&#xff0c;数组的每一位就是一个“魂器”&#xff0c;而他的栈结构里每一位是连续相同的“魂器”的长度&…