栈的实现需要依赖与上一篇文章写的自定义数组来实现 juejin.cn/post/684490…
public interface Stack {
//获取栈中的元素大小
int getSize();
//判断栈是否为空
boolean isEmpty();
//添加一个元素
void push(E e);
//取出第一个元素
E pop();
//查看栈顶的元素
E peek();
}
定义一个实现类 public class ArrayStack {
private Array[E] array;
public ArrayStack(int capacity) {
array = new Array<>(capacity);
}
public ArrayStack() {
this(10);
}
//获取栈的数据大小
@Override
public int getSize() {
return array.getSize();
}
//判断栈是否为空
@Override
public boolean isEmpty() {
return array.isEmpty()
}
//往栈中添加一个元素,因为栈是先进后出,所以我们可以在数组尾部添加元素
//取出元素也从尾部取出
@Override
public void push(E e) {
array.addLast(e);
}
//取出栈顶的元素
@Override
public E pop() {
return array.removeLast();
}
//查看栈顶元素
@Override
public E peek() {
return array.getLast();
}
}