如何仅用递归函数和栈操作逆序一个栈
来源:互联网 发布:centos 6.5 snmp配置 编辑:程序博客网 时间:2024/06/05 02:36
题目:一个栈依次压入1,2,3,4,5那么从栈顶到栈底分别为5,4,3,2,1。将这个栈转置后,从栈顶到栈底为1,2,3,4,5,也就是实现栈中元素的逆序,但是只能用递归函数来实现,而不能用另外的数据结构。
解答:本题考察栈的操作和递归函数的设计,我们需要设计出两个递归函数。
递归函数一:将栈stack的栈底元素返回并移除。
public int getAndRemoveLast(Stack<Integer> stack) { int result=stack.pop(); if(stack.empty()) return result; else { int last= getAndRemoveLast(stack); stack.push(result); return last; } }递归函数二:逆序一个栈,该方法使用了上面的getAndRemoveLast(Stack<Integer> stack)方法。
public void reverse(Stack<Integer> stack) { if(stack.empty()) return; int last=getAndRemoveLast(stack); reverse(stack); stack.push(last); }
0 0
- 仅用递归函数和栈操作逆序一个栈
- 仅用递归函数和栈操作逆序一个栈
- 仅用递归函数和栈操作逆序一个栈
- 栈和队列(3)--如何仅用递归函数和栈操作逆序一个栈
- 栈和队列——如何仅用递归函数和栈操作逆序一个栈
- 栈和队列 如何仅用递归函数和栈操作逆序一个栈
- 栈和队列---如何仅用递归函数和栈操作逆序一个栈
- 如何仅用递归函数和栈操作逆序一个栈
- 3.如何仅用递归函数和栈操作逆序一个栈
- 数据结构 如何仅用递归函数和栈操作逆序一个栈
- 如何仅用递归函数和栈操作逆序一个栈
- 如何仅用递归函数和栈操作逆序一个栈
- 如何仅用递归函数和栈操作逆序一个栈
- day 1.1如何仅用递归函数和栈操作逆序一个栈
- 程序员面试指南之如何仅用递归函数和栈操作逆序一个栈
- 如何仅用递归函数和栈操作逆序一个栈
- 如何仅用递归函数和栈操作逆序一个栈
- 如何仅用递归函数和栈操作逆序一个栈
- 监听器学习笔记
- 合法IP
- 判断一个点是否在多边形区域内
- 跟我学Android之十四 Activity的生命周期
- 云服务器ubuntu-14.01.1系统安装mysql5.6.28(deb-bundle包)
- 如何仅用递归函数和栈操作逆序一个栈
- C#Winform程序的打包,发布和升级
- Java Cache系列之Guava Cache实现详解
- android developer tiny share-20160715
- js判断手机号是否正确
- Android 屏幕适配方案(一)
- Netbeans强制回收、关闭内存
- TCP/IP协议 三次握手和四次挥手
- 设计模式(六):适配器模式Adapter(结构型模式)