package jxau.lyx.stack;
/**
*
* @author liyixiang
* @2014-9-20
* @DataStrutureType: 栈
* @TODO:
* 栈的基本结构
*/
public class Stack {
private int maxSize; //栈的最大空间
private Object[] stackArray; //栈空间
private int top; //栈一般为先进后出,那么栈顶就极为重要
/**
* 初始化方法
* @param s 分配s个栈空间
*/
public Stack(int s) {
maxSize = s;
stackArray = new Object[maxSize]; //开辟栈空间
top = -1;
}
/**
*
*@liyixiang
*@2014-9-20
*@param obj 入栈元素
*@return:void
*@TODO:
* 入栈
*/
public void push(Object obj){
stackArray[++top] = obj;
}
/**
*
*@liyixiang
*@2014-9-20
*@param
*@return:Object 移除栈顶元素
*@TODO:
* 出栈
*注意,虽然数据项仍然在数组中(直到有新的数据项压入栈中覆盖这个数据项)
* 但不能再访问他了!
*/
public Object pop(){
return stackArray[top--];
}
/**
*
*@liyixiang
*@2014-9-20
*@param
*@return:Object 栈顶元素
*@TODO:
* 返回栈顶元素
*/
public Object peek(){
return stackArray[top];
}
/**
*
*@liyixiang
*@2014-9-20
*@param
*@return:boolean
* true为空 false不为空
*@TODO:
* 判断栈中元素是否为空
*/
public boolean isEmpty(){
return top == -1;
}
/**
*
*@liyixiang
*@2014-9-20
*@param
*@return:boolean
* true栈已满 false栈不满
*@TODO:
* 判断栈是否满
*/
public boolean isFull(){
return top == maxSize - 1;
}
}
转载于:https://my.oschina.net/liyixiangBlog/blog/316539