出栈序列判定
来源:互联网 发布:在线c语言教学系统 编辑:程序博客网 时间:2024/04/29 04:57
数据结构实验之栈七:出栈序列判定
Time Limit: 30MS Memory limit: 1000K
题目描述
给一个初始的入栈序列,其次序即为元素的入栈次序,栈顶元素可以随时出栈,每个元素只能入栈依次。输入一个入栈序列,后面依次输入多个序列,请判断这些序列是否为所给入栈序列合法的出栈序列。
例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个出栈序列,但4,3,5,1,2就不可能是该序列的出栈序列。假设压入栈的所有数字均不相等。
输入
第一行输入整数n(1<=n<=10000),表示序列的长度。
第二行输入n个整数,表示栈的压入顺序。
第三行输入整数t(1<=t<=10)。
后面依次输入t行,每行n个整数,表示要判断的每一个出栈序列。
输出
对应每个测试案例输出一行,如果由初始入栈序列可以得到该出栈序列,则输出yes,否则输出no。
示例输入
5
1 2 3 4 5
2
4 5 3 2 1
4 3 5 1 2
示例输出
yes
no
Time Limit: 30MS Memory limit: 1000K
题目描述
给一个初始的入栈序列,其次序即为元素的入栈次序,栈顶元素可以随时出栈,每个元素只能入栈依次。输入一个入栈序列,后面依次输入多个序列,请判断这些序列是否为所给入栈序列合法的出栈序列。
例如序列1,2,3,4,5是某栈的压入顺序,序列4,5,3,2,1是该压栈序列对应的一个出栈序列,但4,3,5,1,2就不可能是该序列的出栈序列。假设压入栈的所有数字均不相等。
输入
第一行输入整数n(1<=n<=10000),表示序列的长度。
第二行输入n个整数,表示栈的压入顺序。
第三行输入整数t(1<=t<=10)。
后面依次输入t行,每行n个整数,表示要判断的每一个出栈序列。
输出
对应每个测试案例输出一行,如果由初始入栈序列可以得到该出栈序列,则输出yes,否则输出no。
示例输入
5
1 2 3 4 5
2
4 5 3 2 1
4 3 5 1 2
示例输出
yes
no
/*用进栈序列检测出栈序列*/# include <stdio.h>int main(){ int in[10001];//进栈序列 int out[10001];//出栈序列 int stack[10001]; int top; int i,j,k; int n,t; bool flag; scanf("%d",&n); for(i=1;i<=n;i++) scanf("%d",&in[i]); scanf("%d",&t); while(t--) { top = 0; flag = true;//默认出栈序列合法 for(j=1;j<=n;j++) scanf("%d",&out[j]); j = 1; /*in[i] 进栈条件 ① 栈空 ② in[i] 与当前out[j]不等*/ /* out[j] j 向后退的条件①in[i] == out[j]②in[i]!=out[j] && out[j] = stack[top]*/ /* stack[top] 元素出栈条件 out[j] == stack[top] 栈顶元素可以随时出栈!!!!!*/ for( i=1;i<=n ,j<=n;i++) { if(top == 0)//栈空 { stack[++top] = in[i]; } else //栈不空 { if(in[i] == out[j])// 相当于进栈后立刻出栈 { j++; } else { if(out[j] == stack[top])// 栈中有元素,时时检测栈顶元素是否可以出栈 { top--; j++; } stack[++top] = in[i]; } } } /*将栈中元素与out中元素比对*/ for(k=j;k<=n;) { if(out[k] == stack[top]) { k++; top--; } else { flag = false; break; } } if(flag) printf("yes\n"); else printf("no\n"); }}
0 0
- 出栈序列判定
- 出栈序列判定
- 出栈序列判定
- 出栈序列判定
- 栈->出栈序列判定
- 栈之出栈序列判定
- SDUT 出栈序列判定 3334
- 给定入栈序列,判定出栈序列是否合法
- SDUT 3334 栈与队列:出栈序列判定 栈混洗
- 数据结构实验之栈七:出栈序列判定
- SDUT3334数据结构实验之栈七:出栈序列判定
- 数据结构实验之栈七:出栈序列判定
- 数据结构实验之栈七:出栈序列判定
- 数据结构实验之栈七:出栈序列判定
- 数据结构实验之栈七:出栈序列判定
- 数据结构实验之栈七:出栈序列判定
- 数据结构实验之栈七:出栈序列判定
- 数据结构实验之栈七:出栈序列判定
- 二叉树的常见面试题(1)
- em 重新安装
- hdu 2819 Swap 二分图匹配 匈牙利算法 解题报告
- 移动端定义字体
- wemall商城系统源码普通版,使用说明
- 出栈序列判定
- Kinect开发学习笔记之(八)彩色、深度、骨骼和用户抠图结合
- Loadrunner http JSON接口请求进行测试
- 【UE4学习记录】UE4网络方面的探索0-1
- 数据结构啊----线性表的练习题
- Java Web 技术经验总结
- C++ 在继承中虚函数、纯虚函数、普通函数,三者的区别
- 网络工程1.16——ARP协议
- 多线程的简单使用