您的位置:首页 > 理论基础 > 数据结构算法

数据结构实验之栈与队列七:出栈序列判定

2017-10-16 21:34 155 查看
#include <iostream>
#include <stack>

/*判断出栈顺序,栈顶元素可以随时出栈,用栈顶元素和出栈序列进行比较,
如果不相等,继续入栈,直到相等为止,
如果想等,栈顶元素出栈,然后在用新栈顶元素和下一个出栈序列元素比较。*/

using namespace std;

int main()
{
int n;
cin>>n;
int Stack1
;
for(int i = 0; i < n; i++)
cin>>Stack1[i];
int t;
cin>>t;
while(t--)
{
stack <int>stk;
int Stack2
;
for(int i = 0; i < n; i++)
cin>>Stack2[i];
int i = 0, j = 0;
while(j < n)
{
if(stk.empty())
stk.push(Stack1[i++]);
else
{
if(stk.top() == Stack2[j])
{
stk.pop();
j++;
}
else
{
if(i < n)
stk.push(Stack1[i++]);
else
break;
}
}
}
if(stk.empty())
cout<<"yes";
else
cout<<"no";
if(t > 0)
cout<<"\n";
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  数据结构