【栈】用一个栈来实现另一个栈的排序
2016-11-02 22:36
302 查看
【题目描述】
在一个栈中元素的类型为整型,现在想将该栈从栈顶到栈底按从大到小的顺序排序,只许申请一个栈,除此之外,可以申请其他变量,但是不能申请额外的数据结构,如何完成排序
【我的代码】
在一个栈中元素的类型为整型,现在想将该栈从栈顶到栈底按从大到小的顺序排序,只许申请一个栈,除此之外,可以申请其他变量,但是不能申请额外的数据结构,如何完成排序
【我的代码】
/** * 用一个栈实现另一个栈的排序 * @param stack */ public static void sortStackByStack(Stack<Integer> stack){ //辅助数组 Stack<Integer> help = new Stack<Integer>(); while(!stack.isEmpty()){ int cur = stack.pop(); //如果数据栈顶的元素比help栈顶元素小,那么直接压入,否则,选择合适的位置压入 while(!help.isEmpty() && cur > help.peek()){ stack.push(help.pop()); } help.push(cur); } //此时数据栈为空,辅助栈是逆序的,将辅助栈依次弹出,压入到数据栈中 while(!help.isEmpty()){ stack.push(help.pop()); } }
相关文章推荐
- 编写一个多线程函数实现对数组排序,要求: 1.至少用两个线程 2.数组的元素值可以事先定义好,或者可以从键盘输入(增加一个线程)。 3.用一个线程对数组排序,用另一个线程输出排序结果。 4.保证先排好序,再输出。
- 用一个栈来实现另一个栈的排序
- 用一个栈实现另一个栈的排序(java实现)
- 数据结构5 用一个栈实现另一个栈的排序
- 栈和队列---用一个栈实现另一个栈的排序
- 用一个栈实现另一个栈的排序
- 栈和队列(5)——用一个栈实现对另一个栈的排序
- C++ 使用一个栈实现另一个栈的排序
- 1栈和队列--用一个栈实现另一个栈的排序
- 程序员代码面试指南--用一个栈实现另一个栈的排序
- 用一个栈实现另一个栈的排序
- 程序员面试指南之用一个栈实现另一个栈的排序
- 004使用一个栈对另一个栈完成排序(C++实现)
- 用一个栈实现另一个栈的排序
- 用一个辅助栈,来实现另一个栈的排序
- 用一个栈实现对另一个栈的排序
- 用一个栈实现另一个栈的排序
- 左神的书——《程序员代码面试指南》之用一个栈实现另一个栈的排序c++实现
- 1_5用一个栈实现另一个栈的排序
- 用一个栈实现另一个栈的排序