zoukankan      html  css  js  c++  java
  • "Coding Interview Guide" -- 用一个栈实现另一个栈的排序

    题目

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

     1     import java.util.Stack;
     2 
     3     public void sortStackByStack(Stack<Integer> stack)
     4     {
     5         Stack<Integer> auxiliary = new Stack<>();
     6         while(!stack.empty())
     7         {
     8             int cur = stack.pop();
     9             while(!auxiliary.empty() && cur > auxiliary.peek())
    10             {
    11                 stack.push(auxiliary.pop());
    12             }
    13             auxiliary.push(cur);
    14         }
    15         while(!auxiliary.empty())
    16         {
    17             stack.push(auxiliary.pop());
    18         }
    19     }

    来源:左程云老师《程序员代码面试指南》

  • 相关阅读:
    git常用命令及多人协同开发及遇到的问题
    LightOJ
    LightOJ
    LightOJ
    LightOJ
    LightOJ
    LightOJ
    LightOJ
    LightOJ
    Codeforces Round #604 (Div. 2) E. Beautiful Mirrors
  • 原文地址:https://www.cnblogs.com/OoycyoO/p/11017769.html
Copyright © 2011-2022 走看看