微软面试100之9 判断整数序列是不是二元查找树的后序遍历结果
来源:互联网 发布:淘宝怎么复制淘口令 编辑:程序博客网 时间:2024/05/16 14:09
第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>
using namespace std;
struct BSTreeNode {
int data;
BSTreeNode * left;
BSTreeNode * right;
};
struct Stack {
int a[100];
int top;
public:
void initStack() {
this->top = 0;
}
};
void addStack (Stack & s,int value) {
s.a[s.top] = value;
s.top++;
}
void addNode (BSTreeNode * & root ,int data) {
if(root==NULL) {
BSTreeNode * p = new BSTreeNode;
p->data = data;
p->left = NULL;
p->right = NULL;
root = p;
}
else {
if(root->data<data) {
addNode(root->right,data);
}
if(root->data>data) {
addNode(root->left,data);
}
}
}
void lastSearch(BSTreeNode * root,Stack & ss) {
if(root->left !=NULL) lastSearch(root->left,ss);
if(root->right!=NULL) lastSearch(root->right,ss);
addStack(ss,root->data);
cout<<root->data<<endl;
}
int main() {
int flag = 1;
BSTreeNode * root = NULL;
addNode(root,8);
addNode(root,10);
addNode(root,5);
addNode(root,6);
addNode(root,7);
addNode(root,9);
addNode(root,11);
Stack s;
s.initStack();
cout<<s.top<<endl;
lastSearch(root,s);
int aa[7] = {7,6,5,9,11,10,8};
for(int i=0;i<s.top;i++) {
if(s.a[i]!=aa[i]) {
flag = 0;
break;
}
}
if(flag==0) cout<<"false"<<endl;
if(flag==1) cout<<"true"<<endl;
}
- 微软面试100之9 判断整数序列是不是二元查找树的后序遍历结果
- 微软面试之9题 判断整数序列是不是二元查找树的后续遍历结果
- 微软算法100道题-----判断整数序列是不是二元查找树的后序遍历结果
- 面试100题:9.判断整数序列是不是二元查找树的后序遍历结果
- 面试100题:9.判断整数序列是不是二元查找树的后序遍历结果
- 微软100题第9题(判断整数序列是不是二元查找树的后序遍历结果)
- 7. 微软面试题:判断整数序列是不是二元查找树的后序遍历结果
- MS100(9)-判断整数序列是不是二元查找树的后序遍历结果
- 9、判断整数序列是不是二元查找树的后序遍历结果
- 9、判断整数序列是不是二元查找树的后序遍历结果
- 第9 题 判断整数序列是不是二元查找树的后序遍历结果
- 判断整数序列是不是二元查找树的后序遍历结果(9)
- 算法习题9:判断整数序列是不是二元查找树的后序遍历结果
- 9 判断整数序列是不是二元查找树的后序遍历结果
- 第9题:判断整数序列是不是二元查找树的后序遍历结果
- 微软,Google面试题 (6) —— 判断整数序列是不是二元查找树的后序遍历结果
- [编程之美-04]判断整数序列是不是二元查找数的后序遍历结果
- [编程之美-13]判断整数序列是不是二元查找数的后序遍历结果
- linux下网络编程:select异步通信的效率问题(二)
- 今日所学(9.4)
- Tomcat7安装与配置,linux
- 找工作笔试面试那些事儿(11)---数据库知识总结(2)范式
- PGA
- 微软面试100之9 判断整数序列是不是二元查找树的后序遍历结果
- Java 读取文件大写和格式化输出字串
- Android开发3.1:Activity详细介绍
- SilkTest武林外史之4-测试JFC Swing应用
- C#获取本机IPv4地址
- 指针用法
- SilkTest武林外史之5-测试SWT应用
- oracle 在安装的时候几个标签的作用
- SilkTest武林外史之6-启动你的应用程序