#include <iostream>
#include <stack>
#include <cstdio>
using namespace std;
int main()
{
stack<int> s1,s2;
char str[10];
int n,i,num;
while(cin>>n)
{
while(!s1.empty())
s1.pop();
while(!s2.empty())
s2.pop();
for(i=0; i<n; ++i)
{
scanf("%s",str);
if(str[1]=='U')
{
scanf("%d",&num);
s1.push(num);
}
else
{
if(s2.empty())
{
while(!s1.empty())
{
num = s1.top();
s1.pop();
s2.push(num);
}
}
if(s2.empty())
printf("%d\n",-1);
else
{
printf("%d\n",s2.top());
s2.pop();
}
}
}
}
return 0;
}
online_judge_1512
最新推荐文章于 2020-03-04 17:29:00 发布
本文介绍了一个使用两个栈来模拟队列行为的程序。通过不断调整两个栈的数据分布,可以实现队列的基本操作,包括入队和出队。当进行出队操作时,若第二个栈为空,则将第一个栈的所有元素依次弹出并压入第二个栈,从而达到先进先出的效果。

2514

被折叠的 条评论
为什么被折叠?



