>[success] # 隊列
[消息隊列](https://www.zhihu.com/question/34243607)
~~~
1.隊列的應用場景'循環隊列、阻塞隊列、并發隊列'
2.隊列就像我們排隊買票,我們一般遵循來的人自動排到隊尾,隊伍開始的人買完票離開隊伍,
因此我們可以得到一個結論'隊列是一組有序的項,并遵循先進先出的原則(FIFO)',這種結構就叫'隊列'
~~~

>[info] ## 隊列和棧的區別
~~~
1.隊列遵循的是'先進先出原則,并且是從隊尾進入,隊頭出去',
棧是遵循的是'先進后出原則,并且只能從棧頂插入,棧頂離開'
~~~
>[danger] ##### 什么時候使用隊列
~~~
1.當某些數據需要按順序執行,并且滿足先進先出的特性,
我們就應該首選'隊列'這種數據結構。
~~~
>[danger] ##### 如何實現隊列
~~~
1.首先需要滿足'先進先出原則',因此最基本的操作也是兩個:'入隊 enqueue()',放一個數據到隊列尾部;
'出隊 dequeue()',從隊列頭部取一個元素
2.可以采用數組和鏈表讓其遵循'先進先出原則',封裝成隊列用數組實現的隊列叫作'順序隊列',用鏈表實現的隊列
叫作'鏈式隊列'。
~~~
- 接觸數據結構和算法
- 數據結構與算法 -- 大O復雜度表示法
- 數據結構與算法 -- 時間復雜度分析
- 最好、最壞、平均、均攤時間復雜度
- 基礎數據結構和算法
- 線性表和非線性表
- 結構 -- 數組
- JS -- 數組
- 結構 -- 棧
- JS -- 棧
- JS -- 棧有效圓括號
- JS -- 漢諾塔
- 結構 -- 隊列
- JS -- 隊列
- JS -- 雙端隊列
- JS -- 循環隊列
- 結構 -- 鏈表
- JS -- 鏈表
- JS -- 雙向鏈表
- JS -- 循環鏈表
- JS -- 有序鏈表
- 結構 -- JS 字典
- 結構 -- 散列表
- 結構 -- js 散列表
- 結構 -- js分離鏈表
- 結構 -- js開放尋址法
- 結構 -- 遞歸
- 結構 -- js遞歸經典問題
- 結構 -- 樹
- 結構 -- js 二搜索樹
- 結構 -- 紅黑樹
- 結構 -- 堆
- 結構 -- js 堆
- 結構 -- js 堆排序
- 結構 -- 排序
- js -- 冒泡排序
- js -- 選擇排序
- js -- 插入排序
- js -- 歸并排序
- js -- 快速排序
- js -- 計數排序
- js -- 桶排序
- js -- 基數排序
- 結構 -- 算法
- 搜索算法
- 二分搜索
- 內插搜索
- 隨機算法
- 簡單
- 第一題 兩數之和
- 第七題 反轉整數
- 第九題 回文數
- 第十三題 羅馬數字轉整數
- 常見一些需求
- 把原始 list 轉換成樹形結構