看圖理解基於數組的隊列

前言

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

隊列

隊列(queue)是一種運算受限的線性表,經過該線性表存儲的元素具備順序性。它的插入操做只被容許在表的後端,而刪除操做只被容許在表的前端。進行插入操做的端稱爲隊尾,而進行刪除操做的端則稱爲隊頭。mysql

隊列中的數據以先進先出(First In First Out,即FIFO)的方式進出隊列。算法

隊列的實現

隊列的實現方式有多種方式,主要是使用不一樣的結構來存儲隊列元素,好比使用數組、單向鏈表、雙向列表等。這裏看數組方式的實現。sql

實現的四要素分別是數組、隊頭(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彙總讀書篇


跟我交流,向我提問:

歡迎關注:

相關文章
相關標籤/搜索