package com.hzins.suanfa;
import java.util.Stack;
/**
* 逆序一个栈
* @author Administrator
*
*/
public class DiguiStack {
/**
* 将栈中的元素从底抽出
* @param stack
* @return
*/
public static int getLastEntry(Stack<Integer> stack){
int result = stack.pop();
//递归函数栈底
if(stack.isEmpty()){
return result;
}
//层级之间
else{
//函数栈底会返回底层数字last 栈底上一层保存pop出的数 result
int last = getLastEntry(stack);
stack.push(result);
return last;
}
}
/**
* 逆序一个栈
* @param stack
*/
public static void getStackreverse(Stack<Integer> stack){
if(stack.isEmpty()){
return ;
}
int entry = getLastEntry(stack);
getStackreverse(stack);
stack.push(entry);
}
public static void main(String[] args) {
Stack<Integer> stack = new Stack<Integer>();
stack.push(1);
stack.push(2);
stack.push(3);
System.out.println(getLastEntry(stack));
System.out.println(stack.pop() + " " + stack.pop());
}
}