用递归函数和栈操作逆序一个栈
2017-10-14 20:31
246 查看
仅用递归函数和栈操作逆序一个栈
(1) getAndRemoveLastElement()函数
(2) reverse()函数
(3)完整代码如下:
import java.util.Stack;
//仅用递归函数和栈操作逆序一个栈
public class ReverseStack{
//将栈的栈底元素返回并移除
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);
//逆序一个栈
reverse(stack);
while(!stack.isEmpty())
{
System.out.println(stack.pop());
}
}
}
(1) getAndRemoveLastElement()函数
(2) reverse()函数
(3)完整代码如下:
import java.util.Stack;
//仅用递归函数和栈操作逆序一个栈
public class ReverseStack{
//将栈的栈底元素返回并移除
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);
//逆序一个栈
reverse(stack);
while(!stack.isEmpty())
{
System.out.println(stack.pop());
}
}
}
相关文章推荐
- 1栈和队列--仅用递归函数和栈操作逆序一个栈
- 003如何仅使用递归函数和栈操作逆序一个栈
- 栈和队列(3)--如何仅用递归函数和栈操作逆序一个栈
- 仅用递归函数和栈操作逆序一个栈
- 如何仅用递归函数和栈操作逆序一个栈
- 栈和队列---如何仅用递归函数和栈操作逆序一个栈
- 用递归函数和栈操作逆序一个栈
- 如何仅用递归函数和栈操作逆序一个栈
- 重造轮子 用递归函数和栈操作逆序一个栈
- 如何仅用递归函数和栈操作逆序一个栈
- 如何仅用递归函数和栈操作逆序一个栈(java实现)
- 数据结构 如何仅用递归函数和栈操作逆序一个栈
- 1_3仅用递归函数和栈操作逆序一个栈
- 栈和队列 如何仅用递归函数和栈操作逆序一个栈
- C++使用递归函数和栈操作逆序一个栈的算法示例
- 仅用递归函数和栈操作逆序一个栈
- 3.如何仅用递归函数和栈操作逆序一个栈
- 如何仅用递归函数和栈操作逆序一个栈
- 程序员面试指南之如何仅用递归函数和栈操作逆序一个栈
- 栈和队列之仅用递归函数和栈操作逆序一个栈