用一个栈实现另一个栈的排序
如果给出一个栈,要求仅使用另一个栈来实现这个栈的从顶到底从大到小的排序。
文章目录
原思路
原思路如下:构造另一个栈help,将原本栈中的元素依次弹出,如果所弹出的元素小于等于help的栈顶元素或者help栈为空,则直接入栈,如果大于help的栈顶元素则将help栈中的元素依次弹出到原栈中,直至help栈顶元素大于等于所弹出的元素,此时将此元素压入,然后再将压入原栈中的元素弹出到help栈中,最后将help栈中的元素倒入原栈中。(好麻烦)代码如下:
public static void sortStack(Stack<Integer> myStack) {
Stack<Integer> stack = new Stack<>();
int count = 0;
while (!myStack.isEmpty()) {
int num = myStack.pop();
if (stack.isEmpty(