用一个栈实现另一个栈的排序
题目:
一个栈元素的类型为整数,现在要想将该栈从顶到底按从大到小的顺序排列,只允许申请一个栈,除此之外,
可以申请一个变量,可以申请额外的变量,但是不能申请额外的数据结构,如何完成排序
思路:
我们需要排序的栈为stack,然后我们申请一个栈记为help,在stack上面执行pop()操作,弹出的元素记为cur
如果cur小于或者等于栈顶元素,则将cur压入help,
如何cur大于help的栈顶元素,则将help的元素涿步弹出,涿一压入stack,直到cur小于或等于help的栈顶元素、再讲
cur压入help
如果cur小于或者等于栈顶元素,则将cur压入help,
如何cur大于help的栈顶元素,则将help的元素涿步弹出,涿一压入stack,直到cur小于或等于help的栈顶元素、再讲
cur压入help
代码:
import java.util.Stack;/*** 一个栈元素的类型为整数,现在要想将该栈从顶到底按从大到小的顺序排列,只允许申请一个栈,除此之外,* 可以申请一个变量,可以申请额外的变量,但是不能申请额外的数据结构,如何完成排序* @author Think* 思路:我们需要排序的栈为stack,然后我们申请一个栈记为help,在stack上面执行pop()操作,弹出的元素记为cur* 如果cur小于或者等于栈顶元素,则将cur压入help,* 如何cur大于help的栈顶元素,则将help的元素涿步弹出,涿一压入stack,直到cur小于或等于help的栈顶元素、再讲* cur压入help*/
public class SortStackByStac