数据结构--栈(基于自定义数组实现)

149 阅读1分钟

栈的实现需要依赖与上一篇文章写的自定义数组来实现 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();
}

}