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

【题目】

一个栈中元素的类型为整型,现在想将该栈从顶到底按从大到小的顺序排序,只许申请一个栈。除此之外,可以申请新的变量,但不能申请额外的数据结构。如何完成排序?

package algorithm_and_data_structure.stack_and_queue;

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() && cur > help.peek()) {
                stack.push(help.pop());
            }

            help.push(cur);
        }

        while (!help.isEmpty()) {
            stack.push(help.pop());
        }
    }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 【题目】 一个栈中元素的类型为整型,现在想将该栈从顶到底按从大到小的顺序排序,只许申请一个栈。除此之外,可以申请新...
    CSDN学院阅读 1,364评论 0 0
  • 题目 一个栈中元素的类型为整型,现在想将该栈从顶到底按从大到小的顺序排序,只许申请一个栈。除此之外,可以申请新的变...
    囧略囧阅读 3,938评论 0 0
  • 【题目】一个栈中元素的类型为整型,现在想将该栈从顶到底按从大到小的顺序排序,只许申请一个栈。除此之外,可以申请新的...
    0x55aa阅读 2,548评论 0 0
  • 本题来自程序员代码面试指南 一个栈中元素的类型为整型,现在想将该栈从顶到底按从小到大(原书是从大到小,但是书下的代...
    624c95384278阅读 4,314评论 0 1
  • 题目:在一个栈中元素的类型为整型,现在想将该栈从栈顶到栈底按从大到小的顺序排序,只许申请一个栈,除此之外,可以申请...
    编程半岛阅读 3,523评论 0 0

友情链接更多精彩内容