import java.util.Stack;
/**
* recursion 递归的意思
* @author chenyu
* 题目:仅用递归函数和栈操作逆序一个栈,列如一次压入1、2、3、4、5 栈顶到栈底是5、4、3、2、1
* 将这个栈转置后栈顶到栈底依次为1、2、3、4、5
*
* 思路:需要两递归函数
* 第一个递归函数是去除栈底并且得到栈底的函数
* 第二个递归函数是依次调用第一个递归函数,然后再压入栈
*/
public class ReverseStackByRecursion {
public static void main(String[] args) {
Stack<Integer> stack=new Stack<Integer>();
stack.push(1);
stack.push(2);
stack.push(3);
stack.push(4);
stack.push(5);
reverse(stack);
while(!stack.empty()){
System.out.println(stack.pop());
}
}
/**
* 去除栈底并且得到栈底的函数
* @param stack
* @return
*/
public static int getAndRemoveLastElement(Stack<Integer> stack){
int result =stack.pop();
if(stack.isEmpty()){
return result;
}else{
int last=getAndRemoveLastElement(stack);
stack.push(res
栈和队列之仅用递归函数和栈操作逆序一个栈
最新推荐文章于 2023-11-12 23:34:29 发布