微软100题-009
来源:互联网 发布:js字符串相等 编辑:程序博客网 时间:2024/06/04 19:45
第9题(树)
判断整数序列是不是二元查找树的后序遍历结果
题目:输入一个整数数组,判断该数组是不是某二元查找树的后序遍历的结果。
如果是返回true,否则返回false。
例如输入5、7、6、9、11、10、8,由于这一整数序列是如下树的后序遍历结果:
8
/ /
6 10
/ / / /
5 7 9 11
因此返回true。
如果输入7、4、6、5,没有哪棵树的后序遍历的结果是这个序列,因此返回false
#include<iostream>#include<vector>using namespace std;bool verifySquenceOfBST(int *a,int len){ if (NULL==a||len<=0) return false; int root = a[len-1];//确定根节点 int i = 0; for (; i < len-1; ++i)//找到左子树的位置 if (root < a[i]) break; int j = i; for (; j < len - 1; ++j)//判断右子树 if (a[j] < root) return false; bool left = true, right = true; if (i>0) left = verifySquenceOfBST(a, i);//递归左字树 if (i < len - 1) right = verifySquenceOfBST(a + i, len - i-1);//递归右子树 return (left&&right);}int main(){ int a[]{5, 7, 6, 9, 11, 10, 8}, len = (sizeof(a) / (sizeof(&a))); cout << verifySquenceOfBST(a, len) << endl; system("pause"); return 0;}
阅读全文
0 0
- 微软100题-009
- 微软面试100题
- 微软数据结构100题
- 微软面试100题
- 微软100题-1
- 微软面试100题
- 微软100题总结
- 【微软100题】逆置链表
- 微软面试100题
- 微软100题
- 理解微软100题
- 微软面试100题
- 微软100题--004
- 微软100题,39题
- [转载]微软面试100题
- 微软面试100题链接
- 微软面试100题整理
- 微软等100题系列
- Boost Thread使用
- 关于Java的File.separator
- poj3311 动态规划 轮廓线 或者状态压缩
- [Leetcode] 301. Remove Invalid Parentheses 解题报告
- 在vue中使用sass的配置的方法
- 微软100题-009
- Linux快捷键总结
- Java中的static关键字解析
- Android--------在Fragment中通过MVP模式用Okhttp进行数据请求
- 有关java web工程降级jdk遇到的问题
- 归并排序和快速排序
- JavaScript-DOM(下篇)
- 解惑 spring 嵌套事务
- python之路——字典操作