Skip to content

Latest commit

 

History

History
63 lines (47 loc) · 2.91 KB

File metadata and controls

63 lines (47 loc) · 2.91 KB

队列

队列(Queue)

队列是遵循 FIFO(First In First Out,先进先出,也称为先来先服务)原则的一组有序集合。

队列在尾部添加新元素,并从顶部移除元素。

最新添加的元素必须排在队列的末尾。

核心方法

方法 描述
enqueue(element(s)) 向队列尾部添加一个(或多个)新的元素。
dequeue() 移除队列的第一(即排在队列最前面的)元素并返回。
peek() 返回队列中第一个元素。

双端队列

双端队列(deque,全名 double-ended queue)是一种具有队列和栈性质的抽象数据类型。

双端队列中的元素可以从两端弹出,

插入和删除操作限定在队列的两边进行。

核心方法

方法 描述
addFront(element(s)) 向队列头部插入添加一个(或多个)新的元素。
addBack(element(s)) 向队列尾部插入添加一个(或多个)新的元素。
peekFront() 返回队列中第一个元素。
peekBack() 返回队列中最后一个元素。
removeFront() 移除队列的第一(即排在队列最前面的)元素并返回。
removeBack() 移除队列的最后一个(即排在队列最前面的)元素并返回。

优先队列

优先队列(Priority Queue):带有权重的队列

优先队列往往用堆来实现。(JS 里可以是数组)

核心方法

方法 描述
enqueue(element(s), priority) 向队尾添加一个元素以及权重
dequeue() 删除队首的元素
front() 读取队首
back() 读取队尾

循环队列

循环队列(Circular Queue):循环队列是一种线性数据结构,其操作表现基于 FIFO(先进先出)原则并且队尾被连接在队首之后以形成一个循环。

核心方法

方法 描述
enqueue(element(s)) 向队列尾部添加一个(或多个)新的元素。
dequeue() 移除队列的第一(即排在队列最前面的)元素并返回。
peek() 返回队列中第一个元素。