二叉搜索树的后序遍历序列
来源:互联网 发布:300英雄淘宝四周年 编辑:程序博客网 时间:2024/06/06 00:06
时间限制:1 秒
内存限制:32 兆
特殊判题:否
提交:1474
解决:740
- 题目描述:
输入一个整数数组,判断该数组是不是某二叉搜索树的后序遍历的结果。如果是则输出Yes,否则输出No。假设输入的数组的任意两个数字都互不相同。
- 输入:
每个测试案例包括2行:
第一行为1个整数n(1<=n<=10000),表示数组的长度。
第二行包含n个整数,表示这个数组,数组中的数的范围是[0,100000000]。
- 输出:
对应每个测试案例,如果输入数组是某二叉搜索树的后序遍历的结果输出Yes,否则输出No。
- 样例输入:
75 7 6 9 11 10 847 4 6 5
- 样例输出:
Yes
No
//c中没有bool类型 #include<stdio.h>#include<malloc.h>int isValid(int *arr,int n){ int i; int right_index=n-1; int is_valid=1; for(i=n-2;i>=0;i--) { if(arr[i]<arr[n-1]) { right_index=i+1; break; } right_index=i; } if(right_index==0) return is_valid; for(i=right_index-1;i>=0;i--) { if(arr[i]>=arr[n-1]) { is_valid=0; return is_valid; } } return is_valid; }int main(){ int n; int i; int is_valid; while(scanf("%d",&n)!=EOF) { int *arr=(int *)malloc(sizeof(int)*n); for(i=0;i<n;i++) scanf("%d",&arr[i]); is_valid=isValid(arr, n); if(is_valid) printf("Yes\n"); else printf("No\n"); } return 0; }/************************************************************** Problem: 1367 User: road Language: C Result: Accepted Time:10 ms Memory:912 kb****************************************************************/
0 0
- 二叉树------二叉搜索树的后序遍历序列
- 【树5】二叉搜索树的后序遍历序列
- 题目10:二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 题目1367:二叉搜索树的后序遍历序列
- 1367:二叉搜索树的后序遍历序列 @jobdu
- 二叉搜索树的后序遍历序列
- Q24:二叉搜索树的后序遍历序列
- 剑指offer:二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 【剑指offer】二叉搜索树的后序遍历序列
- 题目1367:二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- 二叉搜索树的后序遍历序列
- PPT转为PDF怎样转换比较好
- GDB调试程序一(概述)
- dede 内容页分页
- 字节长度转换
- android中scrollview与listview共存
- 二叉搜索树的后序遍历序列
- Android平台上读写NFC标签 原理
- LTE-uplink 迭代检测
- Spark学习之4:SparkContext执行过程
- listcontrol不能显示列名以及不能显示后续列内容的问题
- GitHub命令行操作
- TFS-更改访问级别。增加团队聊天室功能
- hd1213 How Many Tables
- RelativeLayout相对布局