给定一个队列,请用一系列合法的队列操作函数,包括:
(1) int IsEmptyQ(Queue Q)
(2) void AddQ(Queue Q, ElementType item)
(3) ElementType DeleteQ(Queue Q)
将队列中的元素从小到大排序。
注意:不能直接通过数组下标直接访问队列(数组)中的元素。可以使用一个辅助队列。排序后的结果应存放在原队列中。
输入格式说明:
输入首先给出1个正整数N(<=105),表示队列中元素的个数。随后按入队的顺序给出N个整数(这里假设item为整型数字)。
输出格式说明:
在一行中输出排序后出队的序列。数字间以空格分隔,但末尾不得有多余空格。
样例输入与输出:
序号 | 输入 | 输出 |
1 | 10 9 4 6 1 8 3 7 0 2 5
| 0 1 2 3 4 5 6 7 8 9
|
#include <cstdio>
#include <queue>
using namespace std;
int main()
{
int N;
int t;
bool flag=false;
priority_queue<int,vector<int>,greater<int> > q;
/*cin>>N;*/
scanf("%d",&N);
while(N--)
{
/* cin>>t;*/
scanf("%d",&t);
q.push(t);
}
while (!q.empty())
{
if (flag)
/*cout<<" ";*/
printf(" ");
else
flag=true;
/*cout<<q.top();*/
printf("%d",q.top());
q.pop();
}
/*cout<<endl;*/
printf("\n");
//system("pause");
}