1051. Pop Sequence (25)
2017-05-04 17:23
423 查看
//关键点:进栈顺序是now=1,2...n ;当栈顶没有当前number,now从1开始进栈;反之,出栈 #include<iostream> using namespace std; int main(){ int stack[1005]={0};//数组表示栈 int top; int m,n,k; cin>>m>>n>>k; for(int i=1;i<=k;i++){ top=0; int now=1; //top和now是数组stack的键值对,此处从1开始存贮。若从0开始,此处top=-1 ,while变为 flag&&(top==-1 || stack[top]!=number) bool flag=true;//表示栈未满 int number; //1、n个节点,每个都要经过入栈和出栈 for(int j=1;j<=n;j++){ cin>>number; //入栈 while(flag&&(stack[top]!=number)){ //stack[top]!=number表示目前栈里没有number stack[++top]=now;//为了while里的top指向当前栈顶元素,要先自增,再赋值 if(top>m){//0废弃,有效下标1到m flag=false; break; } now++; } //出栈 if(flag&&top>=1&&stack[top]==number) top--; } //2、判断这n个节点的出栈队列是否合法 if(flag) cout<<"YES"<<endl; else cout<<"NO"<<endl; } return 0; }转自:http://blog.csdn.net/ccdllyy/article/details/52658415
相关文章推荐
- PAT (Advanced Level) Practise 1051 Pop Sequence (25)
- 1051. Pop Sequence (25)解题报告
- 1051.Pop Sequence (25)
- 1051. Pop Sequence (25)
- 1051. Pop Sequence (25)
- 1051. Pop Sequence (25)
- 1051. Pop Sequence (25)
- 1051. Pop Sequence (25)
- 1051. Pop Sequence (25)
- 1051. Pop Sequence (25)
- 1051. Pop Sequence (25)
- PAT甲级真题及训练集(6)--1051. Pop Sequence (25)
- 1051. Pop Sequence (25)
- PAT - 甲级 - 1051. Pop Sequence (25)(模拟)
- 1051. Pop Sequence (25)
- 1051. Pop Sequence (25)
- PAT (Advanced Level) Practise 1051 Pop Sequence (25)
- 1051.Pop Sequence (25) PAT甲级刷题
- 1051. Pop Sequence (25)
- 1051. Pop Sequence (25)