只用递归函数,不用其他操作
package stackgame;
import java.util.Stack;
import java.util.Scanner;
public class StackReverse {
public StackReverse() {
// TODO Auto-generated constructor stub
}
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);
System.out.print(stack+" ");
System.out.println();
Reverse(stack);
System.out.print(stack+" ");
}
private static void Reverse(Stack<Integer> stack) {
// TODO Auto-generated method stub
if(stack.isEmpty())
return;
int tmp=getandremovelastelement(stack);
Reverse(stack);
stack.push(tmp);
}
private static int getandremovelastelement(Stack<Integer> stack) {
// TODO Auto-generated method stub
int result=stack.pop();
if(stack.isEmpty())
return result;
int last=getandremovelastelement(stack);
stack.push(result);
return last;
}
}
运行结果
[1, 2, 3, 4, 5]
[5, 4, 3, 2, 1]