我是靠谱客的博主 甜蜜铅笔,这篇文章主要介绍栈和队列---用一个栈实现另一个栈的排序,现在分享给大家,希望可以做个参考。

【题目】

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

【基本思路】

  不断将栈顶元素cur弹出,如果新栈为空、或者新栈栈顶元素大于cur,直接将cur压入新栈中;否则,将新栈中的元素逐一弹出压回原来的栈中,直到新栈的栈顶元素大于cur,再将cur压入新栈中.继续弹出原来栈的栈顶元素,重复上述操作即可。

【代码实现】

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#python3.5 def sortByStack(stack): if len(stack) < 2: return stack stack1 = [] while stack: cur = stack.pop() while len(stack1) != 0 and stack1[-1] < cur: stack.push(stack1.pop()) stack1.push(cur) while stack1: stack.append(stack1.pop()) return stack

最后

以上就是甜蜜铅笔最近收集整理的关于栈和队列---用一个栈实现另一个栈的排序的全部内容,更多相关栈和队列---用一个栈实现另一个栈内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(95)

评论列表共有 0 条评论

立即
投稿
返回
顶部