/*
* 数组实现栈的代码
*/
import java.util.Arrays;
public class testMyStack <E> {
private Object[] stack;
private int size;//数组中存储元素的个数
public testMyStack(){
stack=new Object[10];//初始长度为10
}
public boolean isEmpty(){//判读堆栈是否为空
return size==0;
}
public E peek(){
if(isEmpty()){
return null;
}
return(E) stack[size-1];
}
public E pop(){
E e=peek();
stack[size-1]=null;
size--;
return e;
}
public E push(E item){
ensureCapcity(size+1);//检查容量
stack[size++]=item;
return item;
}
//判断数组是否已满,若已满,则扩充数组空间
private void ensureCapcity(int size){
int len=stack.length;
if(size>len){
int newLen=2*len;//每次扩充为原容量的2倍
stack=Arrays.copyOf(stack, newLen);
System.out.println("数组长度为:"+newLen);
}
}
public static void main(String[] args) {
testMyStack<Integer> s=new testMyStack<Integer>();
s.push(1);
s.push(2);
System.out.println("栈中元素个数:"+s.size);
System.out.println("栈顶元素为:"+s.pop());
System.out.println("栈顶元素为:"+s.pop());
}
}
数组实现栈的代码
最新推荐文章于 2020-09-10 09:22:58 发布