题目描述:
按升序对栈进行排序(最大元素位于栈顶)。最多只能使用一个额外的栈存放临时数据,但不得将元素复制到别的数据结构中(如数组)。该栈支持如下操作: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; }