您的位置:首页 > 其它

栈与队列

2016-07-13 14:49 253 查看

从A队列进入,以C站作为中转,从B队列中输出,判断是否合法的输出结果

#include<iostream>
#include<stack>
using namespace std;
#define MAX 100
int main()
{
int target[MAX];
int A=1,B=1,n;
stack<int> s;
while((cin>>n))
{
for(int i=1;i<=n;i++)
cin>>target[i];
int ok=1;
while(B<n)
{
if(A==target[B]) { A++;B++;}
else if(!s.empty()&&s.top()==target[B]){s.pop();B++;}
else if(A<n) s.push(A++);
else { ok=0;break;}
}
cout<<ok?"Yes":"No";
cout<<endl;
return 0;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: