【问题描述】
已知Q是一个非空队列,S是一个空栈。仅使用少量工作变量以及对队列和栈的基本操作,编写一个算法,将队列Q中的所有元素逆置。
【输入形式】
输入的第一行为队列元素个数,第二行为队列从首至尾的元素
【输出形式】
输出队列的逆置
【样例输入】
3
1 2 3
【样例输出】
3 2 1
【评分标准】
需采用队列与栈的知识,否则不能得分
#include <iostream>
#include <stack>
using namespace std;
int main()
{
stack<int> s;
int i,n;
cin>>n;
for(i=0;i<n;i++)
{
int d;
cin>>d;
s.push(d);
}
while(!s.empty())
{
cout<<s.top()<<" ";
s.pop();
}
return 0;
}