用递归函数和栈操作逆序一个栈(每日一道算法题)
2017-11-15 09:39
337 查看
本题考查栈的操作和递归的设计。
我们需要设计出两个函数:
①将Stack栈底元素移除并返回
②逆序一个栈
参考文献:《程序员代码面试指南》—-左程云
我们需要设计出两个函数:
①将Stack栈底元素移除并返回
②逆序一个栈
package stack; import java.util.Stack; public class RecurrenceStack { 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; } } public static void reverse(Stack<Integer> stack) { if(stack.isEmpty()) { return; } int i = getAndRemoveLastElement(stack); reverse(stack); stack.push(i); } //测试 public static void main(String[] args) { Stack<Integer> stack = new Stack<Integer>(); stack.push(1); stack.push(2); stack.push(3); stack.push(4); reverse(stack); System.out.print(stack.pop()+","); System.out.print(stack.pop()+","); System.out.print(stack.pop()+","); System.out.print(stack.pop()+","); } }
参考文献:《程序员代码面试指南》—-左程云
相关文章推荐
- C++使用递归函数和栈操作逆序一个栈的算法示例
- 对一道“写一个算法实现字符串逆序存储,要求不另设串存储空间.”题目的总结!
- coding interview guide-仅用递归函数和栈操作逆序一个栈-c++实现
- 如何仅用递归函数和栈操作逆序一个栈
- 只用递归函数和栈操作实现一个栈的逆序
- 每日一道算法题:一个整数数组,长度为n,将其分为m份,使各份的和相等,求m的最大值
- 仅用递归函数和栈操作逆序一个栈
- 用递归函数和栈操作逆序一个栈
- 程序员面试指南之如何仅用递归函数和栈操作逆序一个栈
- 数据结构 如何仅用递归函数和栈操作逆序一个栈
- 栈和队列——如何仅用递归函数和栈操作逆序一个栈
- 用一个栈实现另一个栈的排序(每日一道算法题)
- 如何仅用递归函数和栈操作逆序一个栈
- 如何使用递归函数和栈操作逆序一个栈
- 如何仅用递归函数和栈操作逆序一个栈
- 如何仅用递归函数和栈操作逆序一个栈
- 仅用递归函数和栈操作逆序一个栈
- 重造轮子 用递归函数和栈操作逆序一个栈
- 栈和队列 如何仅用递归函数和栈操作逆序一个栈
- 每日一道算法题:输入一个表示整数的字符串,把该字符串转换成整数并输出