美文网首页
[java]一个栈实现另一个栈的排序

[java]一个栈实现另一个栈的排序

作者: 第六象限 | 来源:发表于2017-11-24 11:22 被阅读0次

    要排序的栈记为stack,辅助栈记为help。stack上进行pop操作,弹出的元素记为cur。
    1.如果cur小于或等于help栈顶元素,则将cur直接压入help;
    2.如果cur大于help的栈顶元素,则将help的元素逐一弹出,逐一亚茹stack,直到cur小于或等于help的栈顶元素,再将cur压入help;

    public static void sortStackByStack(Stack<Integer> stack){
        Stack<Integer> help=new Stack<Integer>();
        while(!stack.isEmpty()){
            int cur=stack.pop();
            while(!help.isEmpty()&&help.peek()<cur){
                stack.push(help.pop());
            }
            help.push(cur);
        }
        while(!help.isEmpty()){
            stack.push(help.pop());
        }
    }
    
    

    相关文章

      网友评论

          本文标题:[java]一个栈实现另一个栈的排序

          本文链接:https://www.haomeiwen.com/subject/yamxbxtx.html