美文网首页
[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示例教程

    Java 实现栈stackJava 实现栈stack2Java 向量Vector 反转Java 向量Vector ...

  • 1.算法-栈和队列

    题目 解题思路 这题需要将原先无序的栈进行排序,变成从栈顶到栈底大到小排序,且只允许申请一个栈,即一个变量来实现,...

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

    要排序的栈记为stack,辅助栈记为help。stack上进行pop操作,弹出的元素记为cur。1.如果cur小于...

  • 栈和队列的相互实现

    两个栈实现队列: 一个栈用来入,一个栈用来出 两个队列实现栈: 入栈的时候正常存入一个队列,出栈的时候用另一个队列...

  • 数据结构--栈

    栈栈---后进先出 在Java里有一个Vector的子类Stack()实现了栈。 Stack()方法 boolea...

  • 2021-11-27

    一.栈 1.getmin栈 2.猫狗队列 3.一个栈实现另外栈的排序 二.链表 1.print 2个有序链表的公共...

  • 面试题 03.05. 栈排序

    面试题 03.05. 栈排序 栈排序。 编写程序,对栈进行排序使最小元素位于栈顶。最多只能使用一个其他的临时栈存放...

  • Java数据结构和算法系列———栈

    目录 1、栈的基本概念2、Java模拟简单的顺序栈实现3、增强功能版栈4、利用栈实现字符串逆序5、利用栈判断分隔符...

  • 第十四节-排序优化

    优化快速排序 三数取中法,九数取中法 随机法 限制递归深度 自己实现函数调用栈,手动模拟入栈出栈 举例分析排序函数...

网友评论

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

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