Posted by icoding168 on 2020-02-26 21:11:11

分类: 数据结构和算法  

堆栈(英语:stack)又称为栈或堆叠,是计算机科学中的一种抽象数据类型,只允许在有序的线性数据集合的一端(称为堆栈顶端,英语:top)进行加入数据(英语:push)和移除数据(英语:pop)的运算。因而按照后进先出(LIFO, Last In First Out)的原理运作,堆栈常用一维数组或链表来实现。

基于单向链表实现栈


public class LinkedStack<E> implements Stack<E> {


  private SinglyLinkedList<E> list = new SinglyLinkedList<>();


  public LinkedStack() { }


  @Override
  public int size() { return list.size(); }


  @Override
  public boolean isEmpty() { return list.isEmpty(); }


  @Override
  public void push(E element) { list.addFirst(element); }


  @Override
  public E top() { return list.first(); }


  @Override
  public E pop() { return list.removeFirst(); }


  public String toString() {
    return list.toString();
  }
}