08-队列(Queue)

1.队列特点

  • 队列是一种特殊的线性表,只能从头尾两端进行操作
  • 队尾(rear):只能从队尾添加元素,一般叫做enQueue,入队
  • 对头(front):只能从对头移除元素,一般叫做deQueue,出队
  • 先进先出的原则:First In First Out, FIFO

在这里插入图片描述

2.队列的接口涉及

在这里插入图片描述

  • 队列的内部实现是否可以直接利用以前学过的数据结构呢?

    推荐使用双向链表,因为队列主要是往头尾进行操作。

3.Java的 java.util.Queue

1.Java的队列是LinkedList实现的,而且LinkedList实现了Deque。所以可以将LinkedList当作双端队列来使用

  • public class LinkedList
    extends AbstractSequentialList
    implements List, Deque, Cloneable, java.io.Serializable

2.java.util.Queue是一个接口:

  • 其中poll()方法:出队
  • offer()和add()方法:入队。
    在容量已满的情况下,add() 方法会抛出IllegalStateException异常,offer() 方法只会返回 false 。
    在这里插入图片描述

4.双端队列

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

在这里插入图片描述
2.接口设计

在这里插入图片描述

5.Java的 java.util.Deque

在这里插入图片描述

  • Deque的底层是通过LinkedList来实现的,所以可以将LinkedList当作一个双端队列来使用

猜你喜欢

转载自blog.csdn.net/tttxxl/article/details/121461621