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、优先队列