栈入门(判断出栈顺序是否可行)

来源:互联网 发布:易语言qq飞车辅助源码 编辑:程序博客网 时间:2024/05/16 18:49
#include<cstdio>#include<stack>using namespace std;const int maxn=1100;int n,a[maxn];int main(){    while(scanf("%d",&n)==1)///输入数组长度,     {        stack<int> s;        int A=1,B=1;        for(int i=1;i<=n;i++)            scanf("%d",&a[i]);        int ok=1;        while(B<=n)        {            if(A==a[B])            {                A++;                B++;            }            else                if(!s.empty()&&s.top()==a[B])                {                    s.pop();                    B++;                }                else                    if(A<=n)                        s.push(A++);                    else                    {                        ok=0;                        break;                    }        }        printf("%s\n",ok? "Yes" : "No");    }    return 0; } 
0 0
原创粉丝点击