第 3-4 课:数据结构——队列详解 + 面试题
生活随笔
收集整理的這篇文章主要介紹了
第 3-4 课:数据结构——队列详解 + 面试题
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
隊(duì)列(Queue):與棧相對(duì)的一種數(shù)據(jù)結(jié)構(gòu), 集合(Collection)的一個(gè)子類。隊(duì)列允許在一端進(jìn)行插入操作,而在另一端進(jìn)行刪除操作的線性表,棧的特點(diǎn)是后進(jìn)先出,而隊(duì)列的特點(diǎn)是先進(jìn)先出。隊(duì)列的用處很大,比如實(shí)現(xiàn)消息隊(duì)列。
Queue 類關(guān)系圖,如下圖所示:
注:為了讓讀者更直觀地理解,上圖為精簡(jiǎn)版的 Queue 類關(guān)系圖。本文如無(wú)特殊說(shuō)明,內(nèi)容都是基于 Java 1.8 版本。
隊(duì)列(Queue)
1)Queue 分類
從上圖可以看出 Queue 大體可分為以下三類。
- 雙端隊(duì)列:雙端隊(duì)列(Deque)是 Queue 的子類也是 Queue 的補(bǔ)充類,頭部和尾部都支持元素插入和獲取。
- 阻塞隊(duì)列:阻塞隊(duì)列指的是在元素操作時(shí)(添加或刪除),如果沒(méi)有成功,會(huì)阻塞等待執(zhí)行。例如,當(dāng)添加元素時(shí),如果隊(duì)列元素已滿,隊(duì)列會(huì)阻塞等待直到有空位時(shí)再插入。
- 非阻塞隊(duì)列:非阻塞隊(duì)列和阻塞隊(duì)列相反,會(huì)直接返回操作的結(jié)果,而非阻塞等待。雙端隊(duì)列也屬于非阻塞隊(duì)列。
2)Queue 方法說(shuō)明
Queue 常用方法,如下圖所示:
總結(jié)
以上是生活随笔為你收集整理的第 3-4 课:数据结构——队列详解 + 面试题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 程序员专属精品简历合集—面试必备
- 下一篇: 被一个熟悉的面试题问懵了:StringB