这是以前面试搜狐碰上的一道笔试题:用数组的方式实现Stack,包括栈的初始化,入栈,出栈等操作。
大家都知道,栈是后进先出,只要记住这一点,就不难实现。下面是我的实现:
package com.zxd.stack;
/**
* StackByArray:数组方式实现栈,实现栈的初始化,入栈出栈操作
*
* @author zeng.xiangdong 1770534116@qq.com
* @version V1.0 2014-8-24 下午10:00:03
*/
public class StackByArray {
// 栈的长度
private int length;
// 栈
private Object[] array;
// 栈顶的下标
private int topIndex = -1;
/**
* StackByArry:构造方法
*
* @param length 初始化栈的长度
*/
public StackByArray(int length) {
this.length = length;
array = new Object[length];
}
/**
* push:入栈
*
* @param obj
* @throws Exception
*/
private void push(Object obj) throws Exception {
if(isFullStack()) {
throw new Exception("栈已满");
}
array[++topIndex] = obj;
}
/**
* offer: 出栈,取出栈顶元素
*
* @return