判断整数序列是否为二元查找树后序遍历的结果
来源:互联网 发布:商务软件解决方案 编辑:程序博客网 时间:2024/06/03 21:24
输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。如果是返回true,否则返回false。
分析:
根据后序遍历的特点可知,最后一个元素会把前面的元素分成两部分,前一部分小于它,后一部分大于或等于它。如果满足这个条件同时左右两部分也有这个性质,则该序列是二元查找树后序遍历的结果。整个过程是一个递归过程。
对于一个长度小于等于2的序列,一定是某一二元查找树后序遍历的结果,返回true。
#include <iostream>using namespace std;bool isPostOrderOfBST(int* array, int len) { if(len <= 2) return true; int i = 0; while(array[i] < array[len-1] && i < len-1) i++; int j = i; while(array[j] >= array[len-1] && j < len-1) j++; if(j != len -1) { return false; } return isPostOrderOfBST(array, j) && isPostOrderOfBST(array+j, len-j-1);}int main() { int array[7] = {5, 7, 6, 9, 11, 10, 8}; cout << isPostOrderOfBST(array, 7) << endl; return 0;}
- 判断整数序列是否为二元查找树后序遍历的结果
- 判断整数序列是否为二叉查找树的后序遍历结果
- 判断整数序列是不是二元查找树的后序遍历结果
- 判断整数序列是不是二元查找树的后序遍历结果
- 判断整数序列是不是二元查找树的后序遍历结果
- 算法讨论(五)--判断整数序列是不是二元查找树的后序遍历结果
- 算法题11 判断整数序列是不是二元查找树的后序遍历结果
- 判断整数序列是不是二元查找树的后序遍历结果
- 9.判断整数序列是不是二元查找树的后序遍历结果
- MS100(9)-判断整数序列是不是二元查找树的后序遍历结果
- 判断整数序列是不是二元查找树的后序遍历结果
- 9、判断整数序列是不是二元查找树的后序遍历结果
- 判断整数序列是不是二元查找树的后序遍历结果
- 判断整数序列是不是二元查找树的后序遍历结果
- 9、判断整数序列是不是二元查找树的后序遍历结果
- 判断整数序列是不是二元查找树的后序遍历结果
- 判断整数序列是不是二元查找树的后序遍历结果
- 判断整数序列是不是二元查找树的后序遍历结果
- 在 Windows 7 中启用 Telnet
- 关系型数据库的主备的一致性问题
- mysql操作!
- 效率(2)
- Emacs 配置Clojure开发环境一 clojure-mode
- 判断整数序列是否为二元查找树后序遍历的结果
- VC++ 获取Date Time Picker 控件的时间并格式化输出
- delphi7在windows server 2003企业版上不能打开项目的选项(Options)窗口的解决方法
- codeforce 157 div 2
- Makefile典型模板
- 混迹于C++之虚函数表指针,虚函数表
- 哈佛校园里,不见华服,不见化妆,更不见晃里晃荡,只有匆匆的脚步,坚实地写下人生的篇章
- Win32 多线程程序设计(4)— 同步控制
- 20121223-命令与征服快捷键