18天算法基础系列课(五)队列

111 阅读1分钟

队列是一种特殊的线性表,只能在头尾两端进行操作

  • 队尾(rear):只能从队尾添加元素,一般叫做 enQueue,入队

  • 队头(front):只能从队头移除元素,一般叫做 deQueue,出队

  • 先进先出的原则,First In First Out,FIFO

双端队列(Deque)

◼ 双端队列是能在头尾两端添加、删除的队列,英文 deque 是 double ended queue

public class Deque<E> {
   private List<E> list = new LinkedList<>();
   
   public int size() {
      return list.size();
   }

   public boolean isEmpty() {
      return list.isEmpty();
   }
   
   public void clear() {
      list.clear();
   }

   public void enQueueRear(E element) {
      list.add(element);
   }

   public E deQueueFront() {
      return list.remove(0);
   }

   public void enQueueFront(E element) {
      list.add(0, element);
   }

   public E deQueueRear() {
      return list.remove(list.size() - 1);
   }

   public E front() {
      return list.get(0);
   }

   public E rear() {
      return list.get(list.size() - 1);
   }
}