public class exciseStatck<E> {
private Object[] arr;
private int statckLength=4;//长度
private int size;//个数
private int index;//下标
//初始化扩容
public void capacity(){
//初始化
if(this.arr==null){
this.arr=new Object[statckLength];
}
//扩容
if((this.size-this.statckLength)>=0){
this.statckLength=this.statckLength+(this.statckLength>>1);
this.arr=Arrays.copyOf(arr,this.statckLength);
}
}
//入栈
public E push(E e){
this.capacity();
this.arr[++index]=e;
this.size++;
return e;
}
//出栈
public E pop(){
if(this.index==-1){
throw new EmptyStackException();
}
this.size--;
return (E) this.arr[index--];
}
//是否为空
public boolean isEmpty(){
return this.size==0;
}
public static void main(String[] args) {
exciseStatck<Integer> integerexciseStatck = new exciseStatck<>();
integerexciseStatck.push(1);
integerexciseStatck.push(223);
integerexciseStatck.push(0);
System.out.println(integerexciseStatck.pop());
System.out.println(integerexciseStatck.pop());
System.out.println(integerexciseStatck.pop());
}
}
数据结构之栈(Java语言实现)
最新推荐文章于 2024-08-01 15:05:06 发布