给定一个队列,请用一系列合法的队列操作函数,包括:
(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(" "); //system("pause"); }