美文网首页
用一个栈给另外一个栈排序

用一个栈给另外一个栈排序

作者: 事件_666 | 来源:发表于2019-05-29 16:30 被阅读0次

import java.util.Stack;

public class Problem_05_StackSortStack {

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());
}
}

public static void main(String[] args) {
    Stack<Integer> stack = new Stack<Integer>();
    stack.push(3);
    stack.push(1);
    stack.push(6);
    stack.push(2);
    stack.push(5);
    stack.push(4);
    sortStackByStack(stack);
    System.out.println(stack.pop());
    System.out.println(stack.pop());
    System.out.println(stack.pop());
    System.out.println(stack.pop());
    System.out.println(stack.pop());
    System.out.println(stack.pop());
}

}

相关文章

  • 用一个栈给另外一个栈排序

    import java.util.Stack; public class Problem_05_StackSort...

  • 2021-11-27

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

  • 面试题 03.05. 栈排序

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

  • 栈系列之-排序

    一、栈实现排序概述 将一个栈内的元素实现排序,光靠一个栈肯定是不够的,因为无法实现元素的调动,所以需要一个辅助栈,...

  • 1.算法-栈和队列

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

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

    题目:在一个栈中元素的类型为整型,现在想将该栈从栈顶到栈底按从大到小的顺序排序,只许申请一个栈,除此之外,可以申请...

  • 栈和队列的相互实现

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

  • 2021-12-06

    leetcode 用两个栈实现队列 须知:Python的栈的pop( )函数返回栈顶元素 思路: 两个栈 一个栈...

  • 【剑指offer】问题9:用两个栈实现队列

    题目一:用两个栈实现一个队列。 先上代码。 用两个栈实现一个队列,一个只用来压栈(stack1),一个只用来出栈(...

  • 7天练|Day2:栈、队列和递归

    关于栈、队列和递归的几个必知必会的代码实现栈用数组实现一个顺序栈用链表实现一个链式栈编程模拟实现一个浏览器的前进、...

网友评论

      本文标题:用一个栈给另外一个栈排序

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