一、数组实现栈
- 首先需要定义一个数组来储存栈中的数据,并定义一个变量来记录数组中储存元素的个数,编写一个构造方法来构造一个长度为十得数组。
private Object array[];
private int size;
public MyStack() {
array = new Object[10];
}
- 判断栈是否为空
只需要判断记录数组储存元素数量的变量是否为零即可。
public boolean isEmple() {
return size == 0;
}
- 扩充数组
判断数组是否已经满了,如果满了则需要扩充数组,定义一个值为10的长度变量,调用Arrays中的copyOf(array, newsize)方法来扩充数组
public void addarray(int size) {
if(size>array.length) {
int newsize = 10;
array = Arrays.copyOf(array, newsize);
}
}
- 向栈中添加元素
先调用addarray方法查看当前元素是否能添加进去,如果数组已满则扩充数组长度。最后直接将需要添加的元素赋给数组的第size++个元素。
public void put(E e) {
addarray(size+1);
array[size++] = e