概述
【题目】
一个栈中元素的类型是整型,现在想将该栈从顶到底按从大到小的顺序排序,只许申请一个栈。除此之外,可以申请新的变量,但不能申请额外的数据结构。如何完成排序?
【基本思路】
不断将栈顶元素cur弹出,如果新栈为空、或者新栈栈顶元素大于cur,直接将cur压入新栈中;否则,将新栈中的元素逐一弹出压回原来的栈中,直到新栈的栈顶元素大于cur,再将cur压入新栈中.继续弹出原来栈的栈顶元素,重复上述操作即可。
【代码实现】
#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
最后
以上就是甜蜜铅笔为你收集整理的栈和队列---用一个栈实现另一个栈的排序的全部内容,希望文章能够帮你解决栈和队列---用一个栈实现另一个栈的排序所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复