用一个栈实现另一个栈的排序
Posted 澄海乌鸦
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用一个栈实现另一个栈的排序相关的知识,希望对你有一定的参考价值。
要求:使用一个辅助栈实现栈的排序
思路:
要排序的栈为stack,辅助栈为help
stack弹出一个元素cur,判断cur与help栈顶元素的大小,若小于或等于,则直接压入help,
否则,将help中小于cur的元素一次压入stack,之后将cur压入help,
重复上面的过程,直到stack为空。
具体代码如下:
public class pro5_sortStackByStack { public static void sortStackByStack(Stack<Integer> stack) { Stack<Integer> help = new Stack<Integer>() ; while(!stack.isEmpty()) { int cur = stack.pop() ; while(!help.isEmpty() && help.peek() < cur) { stack.push(help.pop()) ; } help.push(cur) ; } while(!help.isEmpty()) { stack.push(help.pop()) ; } } }
以上是关于用一个栈实现另一个栈的排序的主要内容,如果未能解决你的问题,请参考以下文章