1栈和队列--用一个栈实现另一个栈的排序

来源:互联网 发布:药监局举报淘宝卖假药 编辑:程序博客网 时间:2024/04/25 21:12

**功能:将该栈排序
要求:只允许申请一个栈,不许用其他的数据结构**
stack —-cur—- help

  • if(cur小于等于help的栈顶元素,则直接将cur压入help)
  • else(弹出help的中的元素压入stack,直到cur小于等于help弹出的元素)
  • 将cur压入help
  • 直到stack中为空,将help压回stack
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());        }    }
1 0
原创粉丝点击