好题集锦
来源:互联网 发布:exceed2008是什么软件 编辑:程序博客网 时间:2024/06/09 15:50
1、如何仅用递归函数和栈操作逆序一个栈
一个栈依次入栈顺序为12345,从栈顶到栈底是54321,若要从栈顶到栈底是12345,即逆序,怎么做,只能用递归函数,不能用其他数据结构
public static void reverse(Stack<Integer> stack){ if(stack.isEmpty()){ return; } int i = getAndRemoveLastElement(stack);//依次获取1、2、3 reverse(stack);//递归 stack.push(i);//依次压入3、2、1 }//如果栈顶到栈底是321,则功能是返回1,1不压入,23会重新压入public static int getAndRemoveLastElement(Stack<Integer> stack){ int result = stack.pop(); if(stack.isEmpty()){ return result;//栈为空时返回栈底元素,但是不压入栈 }else{ int last = getAndRemoveLastElement(stack);//递归,一直到最后一个 stack.push(result);//如果不是栈底的话,就压入 return last; } }
2、用一个栈实现另一个栈的排序
将一个栈从栈顶到栈底按照从大到小的顺序排序,只允许用一个辅助栈
/* * 如果cur<=help.peek(),则将cur压入help * 如果cur大于help.peek(),则将help的元素一一弹出,逐一压入stack中,直到cur<=help.peek(),再将cur压入到help */ 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());//比cur大的都返回stack中 } help.push(cur); } //按从大到小的顺序 while(!help.isEmpty()){ stack.push(help.pop()); } }
3、用一个栈实现另一个栈的排序
0 0
- 好题集锦
- 好的工具集锦
- 好诗词集锦
- 好用的网站集锦
- 好博客好文字好资源集锦------------------》【不断添加中】
- CF 好题集锦 PART 0 & #388 B Fox and Minimal path 题解
- extjs 问题集锦 好贴 转
- extjs 问题集锦 好贴 转
- extjs 问题集锦2 好帖 转
- 好资源推荐-经典技术文章集锦!!!
- 好代码集锦(随时补充)
- CSS3比较好的网站集锦
- 前端开发集锦-比较好的网站
- XCode实用好用插件集锦
- 比较好的Java 网站/论坛/博客集锦
- 三分钟配好MySQL主从复制 - 问题集锦
- 好雨云帮近期问答集锦(1.16~2.5)
- 好雨云帮一周问答集锦(2.6-2.12)
- 高效Web开发的10个jQuery代码片段
- 如何SSDT执行报表服务(1):登陆报表服务器
- GEEK编程练习— —2的次方数
- 构造函数的理解
- Linux启动流程分析(CentOS 5.x)
- 好题集锦
- 100天土鸡饲养计划(38)
- Java台球游戏2
- tomcat中reloadable作用
- 内核管理之CPU基本组件
- lightoj 1011 Marriage Ceremonies (状压dp)
- SDL初步学习
- 【Codeforces Round #366 (Div. 2)】Codeforces 705B Spider Man
- os引导程序boot从扇区拷贝os加载程序loader文件到内存(boot copy kernel to mem in the same method)