另外我们可以再用一个栈来实现栈的升序排列。
优先队列:
//优先队列来实现
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