问题描述:
一个栈中元素类型为整型,现在想将该栈从顶到底按从大到小排序,只许申请一个栈,除此之外可以申请新的变量,但不能申请额外的数据结构,如何完成排序?
原理
其实很简单,建立一个辅助栈,当辅助栈为空的时候直接将数据栈的栈顶压入辅助栈中。
如果不是空,则比较数据栈的栈顶和辅助栈的栈顶,如果小于辅助栈的栈顶,则将数据栈的栈顶压入辅助栈中。如果大于,则将辅助栈大于数据栈栈顶元素压入数据栈中,直到辅助栈为空或者辅助栈的栈顶大于数据栈的栈顶。
代码
1 | def sort(stack,top): |
问题描述:
一个栈中元素类型为整型,现在想将该栈从顶到底按从大到小排序,只许申请一个栈,除此之外可以申请新的变量,但不能申请额外的数据结构,如何完成排序?
其实很简单,建立一个辅助栈,当辅助栈为空的时候直接将数据栈的栈顶压入辅助栈中。
如果不是空,则比较数据栈的栈顶和辅助栈的栈顶,如果小于辅助栈的栈顶,则将数据栈的栈顶压入辅助栈中。如果大于,则将辅助栈大于数据栈栈顶元素压入数据栈中,直到辅助栈为空或者辅助栈的栈顶大于数据栈的栈顶。
1 | def sort(stack,top): |
微信支付
支付宝