栈
- 一种基于数组或者链表的数据结构
- 可以抽象为一个单口容器(如下图),只有一边可以进出操作,具有先进后出的特点
栈的实现
- 数组实现

- 链表实现

- @author jitwxs
@date 2022-03-06 */ public class ArrayStock
implements MyStock { private T[] data = (T[])new Object[1]; private int n=0;
public ArrayStock(int capacity) {
this.data = (T[])new Object[capacity];
}
@Override public MyStock push(T t) {
adjustSize();data[n++] = t;return null;
}
@Override public T pop() {
if (isEmpty()) {return null;}T curr = data[--n];data[n] = null;return curr;
}
@Override public int size() {
return n;
}
@Override public boolean isEmpty() {
return n==0;
}
void adjustSize(){
if (n>=data.length){T[] newData = (T[])new Object[n*2];for (int i = 0;i < n;i++) {newData[i] = data[i];}data = newData;}
} } ```
