题目描述
给出一个序列,判断该序列是不是某二叉搜索树的中序遍历序列,如果是输出"Yes",否则输出"No"。
一颗带权二叉树是一颗二叉搜索树(二叉排序树),当且仅当对于任意一个节点,他的左子树中的所有权值小于当前节点的权值,且它的右子树中的所有权值均大于当前节点的权值。输入
第一行代表数据组数。
每组数据包括两行:
第一行为一个整数,表示序列的长度。第二行包含个整数,表示这个这个序列,序列中的数的范围
输出
每组数据,如果是二叉搜索树的中序遍历序列输出"Yes",否则输出"No"。
样例输入
241 2 3 441 3 2 4
样例输出
YesNo
来源
#include#include #include #include using namespace std;int main() { int T; cin>>T; while(T--) { int m,x,y,lable=0; cin>>m; cin>>x; m--; while(m--) { cin>>y; if(x>=y) lable=1; x=y; } if(!lable) cout<<"Yes"<