JAVA用数组来模拟栈的结构

JAVA用数组来模拟栈的结构,代码如下: 
/**
 * 用数组来模拟栈的结构:
 * 基本操作:
 * 		*入栈:push(Object o)把数据压入栈中
 * 		*出栈:pop()把栈顶的元素给取出,会后数据的丢弃
 * 		*查看栈顶数据:peek()只查看不删除数据
 * 		*栈是否为空:isEmpty();
 * 		*栈是否为满:isFull();
 * @author Administrator
 *
 */
public class ArrayStack {
	
	Object[] arrayO; //数组结构用来保存栈中数据
	
	int top;   //栈中指针,永远指向栈顶的元素
	
	int size; //栈的大小
	
	int count; //记录栈中有多少数据
	
	final static int defaultSize = 6;
	
	public ArrayStack(int size){
		this.size = size;
		arrayO = new Object[size];
		this.top = -1; //再栈的底部下一个位置
		this.count = 0;		
	}
	
	public ArrayStack(){
		this(defaultSize);
	}
	
	/**
	 * 入栈操作
	 */
	public void push(Object o){
		//判断栈是否已经满了,满了就不能继续添加
		if(this.isFull()){		
			System.out.println("栈已经满了,不能继续添加数据");
			return;
		}
		top++;  //栈顶指针向上移动一位
		count++; //栈中元素个数加一
		this.arrayO[top] = o;	//赋值
	}
	
	/**
	 * 弹出栈顶元素
	 */
	public Object pop(){
		//先判断栈是否空,空不能弹出数据
		if(this.isEmpty()){
			System.out.println("栈为空,没有数据");
			return null;
		}
		
		Object o = this.arrayO[top];
		top--;
		count--;
		return o;
		
	}
	
	/**
	 * 查看栈顶元素
	 */
	public Object peek(){
		//先判断栈是否空,空不能弹出数据
		if(this.isEmpty()){
			System.out.println("栈为空,没有数据");
			return null;
		}
		
		return this.arrayO[top];
	}
	
	/**
	 * 判断栈是否满
	 */
	public boolean isFull(){
		return this.count == this.size;
	}
	
	
	/**
	 * 判断栈是否为空
	 */
	public boolean isEmpty(){
		return this.count == 0;
	}
}

你可能感兴趣的:(java,object,null,Class)