题目:在一个栈中元素的类型为整型,现在想将该栈从栈顶到栈底按从大到小的顺序排序,只许申请一个栈,除此之外,可以申请其他变量,但是不能申请额外的数据结构,如何完成排序
// 用一个栈实现另一个栈的排序
void sortStackByStack(stack<int>& s) {
if (s.empty()) {
return ;
}
stack<int> tmp;
while (!s.empty()) {
int top = s.top();
s.pop();
while (!tmp.empty() && top > tmp.top()) {
s.push(tmp.top());
tmp.pop();
}
tmp.push(top);
}
while (!tmp.empty()) {
s.push(tmp.top());
tmp.pop();
}
}