在线编程--用递归函数和栈操作逆序栈
来源:互联网 发布:淘宝极有家什么意思 编辑:程序博客网 时间:2024/05/17 02:36
题目描述
一个栈依次压入1,2,3,4,5那么从栈顶到栈底分别为5,4,3,2,1。将这个栈转置后,从栈顶到栈底为1,2,3,4,5,也就是实现了栈中元素的逆序,请设计一个算法实现逆序栈的操作,但是只能用递归函数来实现,而不能用另外的数据结构。
给定一个栈Stack以及栈的大小top,请返回逆序后的栈。
测试样例:
[1,2,3,4,5],5
返回:[5,4,3,2,1]
import java.util.*;public class ReverseStack { public int[] reverseStackRecursively(int[] stack, int top) { // write code here Stack<Integer> stack2=new Stack<Integer>(); for(int i=0;i<top;i++){ stack2.push(stack[i]); } reverse(stack2); for(int i=top-1;i>=0;i--){ stack[i]=stack2.pop(); } return stack; } public static int getAndRemoveLastElement(Stack<Integer> stack){ int result = stack.pop(); if(stack.empty()){ return result; } else { int last =getAndRemoveLastElement(stack); stack.push(result); return last; } } public static void reverse(Stack<Integer> stack){ if(stack.empty()){ return; } int i=getAndRemoveLastElement(stack); reverse(stack); stack.push(i); }}
0 0
- 在线编程--用递归函数和栈操作逆序栈
- 用递归函数和栈操作逆序栈(递归)
- 仅用递归函数和栈操作逆序一个栈
- 用递归函数和栈操作逆序栈
- 仅用递归函数和栈操作逆序一个栈
- 如何实现用递归函数和栈操作逆序栈
- 用递归函数和栈操作逆序一个栈
- 仅用递归函数和栈操作逆序一个栈
- 用递归函数和栈操作逆序一个栈
- 用递归函数和栈操作逆序栈
- 如何使用递归函数和栈操作逆序一个栈
- 栈和队列之仅用递归函数和栈操作逆序一个栈
- 栈和队列(3)--如何仅用递归函数和栈操作逆序一个栈
- 1栈和队列--仅用递归函数和栈操作逆序一个栈
- 栈和队列之仅用递归函数和栈操作逆序一个栈
- 栈和队列——如何仅用递归函数和栈操作逆序一个栈
- 栈和队列 如何仅用递归函数和栈操作逆序一个栈
- 栈和队列---如何仅用递归函数和栈操作逆序一个栈
- java编程小记
- java项目日志
- ubuntu下如何将笔记本自带的键盘关闭
- Android网络与数据存储_学习笔记_第六周:SQLite与ContentProvider
- Fibonacci数——求第n个斐波拉契数
- 在线编程--用递归函数和栈操作逆序栈
- 多分类问题中混淆矩阵(Confusion Matrix)的Matlab画法
- 适配器模式
- IP协议及IP数据报解析
- 动态规划之Palindrome
- 演示程序之打游戏 -- 慕司板IAP15
- PAT乙级1005-德才论
- 经典算法——二进制中1的个数
- 使用Oracle11g自带的SQL Developer报错:Unable to find a Java Virtual Machine