看圖理解基於陣列的佇列

超人汪小建發表於2019-03-04

前言

推出一個新系列,《看圖輕鬆理解資料結構和演算法》,主要使用圖片來描述常見的資料結構和演算法,輕鬆閱讀並理解掌握。本系列包括各種堆、各種佇列、各種列表、各種樹、各種圖、各種排序等等幾十篇的樣子。

佇列

佇列(queue)是一種運算受限的線性表,通過該線性表儲存的元素具有順序性。它的插入操作只被允許在表的後端,而刪除操作只被允許在表的前端。進行插入操作的端稱為隊尾,而進行刪除操作的端則稱為隊頭。

佇列中的資料以先進先出(First In First Out,即FIFO)的方式進出佇列。

佇列的實現

佇列的實現方式有多種方式,主要是使用不同的結構來儲存佇列元素,比如使用陣列、單向連結串列、雙向列表等。這裡看陣列方式的實現。

實現的四要素分別是陣列、隊頭(head)指標、隊尾(tail)指標以及佇列操作集。其中陣列用於存放元素,隊頭指標用於指引隊頭位置,隊尾指標用於指引隊尾位置,佇列核心操作為入隊和出隊。此外,佇列存放的元素數量不能超過陣列的長度。

image

enqueue

"the","monster","is","coming"四個字串分別進行入隊操作,

image

image

image

image

dequeue

對佇列中進行兩次出隊操作,

image

image

-------------推薦閱讀------------

我的開源專案彙總(機器&深度學習、NLP、網路IO、AIML、mysql協議、chatbot)

為什麼寫《Tomcat核心設計剖析》

2018彙總資料結構演算法篇

2018彙總機器學習篇

2018彙總Java深度篇

2018彙總自然語言處理篇

2018彙總深度學習篇

2018彙總JDK原始碼篇

2018彙總Java併發核心篇

2018彙總讀書篇


跟我交流,向我提問:

看圖理解基於陣列的佇列

歡迎關注:

看圖理解基於陣列的佇列

相關文章