用一个栈实现另一个栈的排序

来源:互联网 发布:mac安装千牛 编辑:程序博客网 时间:2024/04/19 16:10

一个栈中元素的类型为整型,现在想将该栈从顶到底按从大到小的顺序排序,只许申请一个栈。除此之外,可以申请新的变量,但不能申请额外的数据结构。
以下为该题目的具体算法实现:

import java.util.Stack;public class SortStackByStack{    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());    }}}
0 0