下面是 wikipedia 对于栈的定义:

堆栈 (英语:stack),也可直接称栈(港澳台作堆叠),在计算机科学中,是一种特殊的串列形式的数据结构,它的特殊之处在于只能允许在链接串列或阵列的一端(称为堆叠顶端指标,英语:top)进行加入数据(英语:push)和输出数据(英语:pop)的运算。另外栈也可以用一维数组或连结串列的形式来完成。
由于堆叠数据结构只允许在一端进行操作,因而按照后进先出(LIFO, Last In First Out)的原理运作。

简单示意图:

这里使用 LinkedList 存储数据。

  • 入栈
1
2
3
public void push(T t) {
mList.addFirst(t);
}
  • 出栈
1
2
3
4
5
public void pop() {
if(!mList.isEmpty()) {
mList.removeFirst();
}
}
  • 获取栈顶元素
1
2
3
public T getPop() {
return mList.getFirst();
}

Source Code