栈的反转练习题


layout: post
title: “栈的反转练习题”
date: 2015-5-20 16:14:09 +0800
categories: arithmetic

实现一个栈的逆序,但是只能用递归函数和这个栈本身的pop操作来实现,而不能自己申请另外的数据结构。
给定一个整数数组A即为给定的栈,同时给定它的大小n,请返回逆序后的栈。


      public static int[] reverseStack(int[] A, int n) {
		if(n == 0){
			return A;
		}else{
			int cur = getStackBottom(A, n);
			n--; 
			reverseStack(A, n);
			A[n] = cur;
			return A;
		}
//		return A;
	}
	public static int getStackBottom(int[] A, int n) {
		int  result = A[n-1];//获取当前层数的值
		n--;//往下一层走
		if(n ==0){
			return result;
		}else{
			int cur = getStackBottom(A, n);
			A[n-1] = result;
			return cur;
	   	}
	}