另外我们可以再用一个栈来实现栈的升序排列。
优先队列:
//优先队列来实现 void sortStack(std::stack<int>& vStk) { std::priority_queue<int, std::vector<int>, std::greater<int>> Queue; while (!vStk.empty()) { Queue.push(vStk.top()); vStk.pop(); } while (!Queue.empty()) { vStk.push(Queue.top()); Queue.pop(); } }
//附加一个栈来实现 void sortStack_(std::stack<int>& vStk) { std::stack<int> Tmp; while (!vStk.empty()) { int Top = vStk.top(); vStk.pop(); while (!Tmp.top() && Top < Tmp.top()) { vStk.push(Tmp.top()); Tmp.pop(); } Tmp.push(Top); } }
014写程序将一个栈按升序排序,对这个栈是如何实现的,你不应该做任何特殊的假设(keep it up)
原文地址:http://blog.csdn.net/xiaoliangsky/article/details/38886583