Write a program to sort a stack in ascending order. You should not make any assumptions about how the stack is implemented. The following are the only functions that should be used to write this program: push | pop | peek | isEmpty.

 1 stack<int> Ssort(stack<int> s){
 2     stack<int> t;
 3     while(!s.empty()){
 4         int data = s.top();
 5         s.pop();
 6         while(!t.empty() && t.top()>data){
 7             s.push(t.top());
 8             t.pop();
 9         }
10         t.push(data);
11     }
12     return t;
13 }
 1 void Qsort(stack<int> &s){
 2     priority_queue< int,vector<int>,greater<int> > q;
 3     while(!s.empty()){
 4         q.push(s.top());
 5         s.pop();
 6     }
 7     while(!q.empty()){
 8         s.push(q.top());
 9         q.pop();
10     }
11 }

1、辅助栈 2、优先队列

 posted on 2013-08-06 20:17  xuanxu  阅读(161)  评论(0编辑  收藏  举报