二叉搜索树
Time Limit : 2000/1000ms (Java/Other) Memory Limit : 32768/32768K (Java/Other)
Total Submission(s) : 2 Accepted Submission(s) : 2
Font: Times New Roman | Verdana | Georgia
Font Size: ← →
Problem Description
判断两序列是否为同一二叉搜索树序列
Input
开始一个数n,(1<=n<=20) 表示有n个需要判断,n= 0 的时候输入结束。 接下去一行是一个序列,序列长度小于10,包含(0~9)的数字,没有重复数字,根据这个序列可以构造出一颗二叉搜索树。 接下去的n行有n个序列,每个序列格式跟第一个序列一样,请判断这两个序列是否能组成同一颗二叉搜索树。
Output
如果序列相同则输出YES,否则输出NO
Sample Input
25674325432675763420
Sample Output
YESNO
Source
浙大计算机研究生复试上机考试-2010年
一棵非空的二叉搜索树满足以下特征:
每个结点都有一个作为搜索依据的关键码,所有结点的关键码互不相同。左子树(如果存在)上的所有结点的关键码均小于根结点的关键码。右子树(如果存在)上的所有结点的关键码均大于根结点的关键码。根结点的左右子树也都是二叉搜索树。二叉搜索树又称为“二叉排序树”、“二叉查找树”、“二叉检索树”
#include#include #include using namespace std;const int N=2010;char str[30];int num1[N],num2[N];void Insert(int num[N],int index,int x){ if(num[index]==-1){ num[index]=x; return ; } if(num[index]