美文网首页
用一个栈实现另一个栈的排序

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

作者: CSDN学院 | 来源:发表于2018-05-17 21:20 被阅读0次

    【题目】

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

    【解答】

    将要排序的栈记为 stack,申请的辅助栈记为help。在 stack上执行pop操作,弹出的元素记为cur。

    如果cur小于或等于he|p的栈顶元素,则将cur直接压入help。

    如果cur大于help的栈顶元素,则将help的元素逐一弹出,逐压入 stack,直到cur小于或等于hep的栈顶元素,再将cur压入he|p。

    一直执行以上操作,直到 stack中的全部元素都压入到help。最后

    将he|p中的所有元素逐一压入 stack,即完成排序。

    欢迎一起来交流代码那点事:https://mp.csdn.net/postedit/80325970?utm_source=zwqt

    相关文章

      网友评论

          本文标题:用一个栈实现另一个栈的排序

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