package com.sanmubird.basicDataStructure;
public class Stack {
private Object[] arrayStack ;//
private int maxSize ; //栈容量
private int top ; //栈指针;
public Stack(int initialSize){
if(initialSize >= 0 ){
this.arrayStack = new Object[initialSize];
this.maxSize = initialSize ;
this.top = -1 ;
}else{
throw new RuntimeException("初始化的大小不能小于0"+initialSize);
}
}
// 进栈,进栈的第一个元素的top = 0 ;
public void push(Object o){
if(top == maxSize -1 ){
throw new RuntimeException("栈已满,无法将元素插入栈");
}else{
arrayStack[++top] = o ;
}
}
public Object pop(){
if(top == -1){
throw new RuntimeException("栈为空!");
}else{
return arrayStack[top--];
}
}
// 查看栈顶元素,但是不移除
public Object peek(){
if(top == -1){
throw new RuntimeException("栈为空!");
}else{
return arrayStack[top];
}
}
public boolean isEmpty(){
return top == -1 ? true : false;
}
public int size(){
return arrayStack.length;
}
}