题目描述:
按升序对栈进行排序(最大元素位于栈顶)。最多只能使用一个额外的栈存放临时数据,但不得将元素复制到别的数据结构中(如数组)。该栈支持如下操作:push、pop、peek、isEmpty.
代码如下:解析参考编程金典p144页
public Stack<Integer>sort(Stack<Integer>s){
Stack<Integer>rt=new Stack<>();//假设已排好序
while(!s.isEmpty()){
int tmp=s.pop();
while(!rt.isEmpty() && rt.peek()>tmp){
s.push(rt.pop());
}
rt.push(tmp);
}
return rt;
}
原文:http://www.cnblogs.com/mlz-2019/p/4761833.html