佇列的概念

2022-05-01 11:45:10 字數 674 閱讀 5613

佇列,是一種對資料的"存"和"取"有嚴格要求的線性儲存結構。

佇列的兩端都"開口",要求資料只能從一端進,從另一端出,如圖 1 所示:

佇列的特點

進資料的一端為 "隊尾",出資料的一端為 "隊頭",資料元素進佇列的過程稱為 "入隊",出佇列的過程稱為 "出隊"。

不僅如此,佇列中資料的進出要遵循 "先進先出" 的原則,即最先進佇列的資料元素,同樣要最先出佇列。拿圖 1 中的佇列來說,從資料在佇列中的儲存狀態可以分析出,元素 1 最先進隊,其次是元素 2,最後是元素 3。此時如果將元素 3 出隊,根據佇列 "先進先出" 的特點,元素 1 要先出佇列,元素 2 再出佇列,最後才輪到元素 3 出佇列。

棧和佇列不要混淆,棧結構是一端封口,特點是"先進後出";而佇列的兩端全是開口,特點是"先進先出"。

因此,資料從表的一端進,從另一端出,且遵循 "先進先出" 原則的線性儲存結構就是佇列。

佇列的實現

佇列儲存結構的實現有以下兩種方式:

順序佇列:在順序表的基礎上實現的佇列結構;

鏈佇列:在鍊錶的基礎上實現的佇列結構;

兩者的區別僅是順序表和煉表的區別,即在實際的物理空間中,資料集中儲存的佇列是順序佇列,分散儲存的佇列是鏈佇列。

訊息佇列RabbitMQ的概念

rabbitmq的核心概念為以下 1.訊息 由訊息頭和訊息體組成。訊息體是不透明的,訊息頭是由一系列可選屬性組成,包括路由鍵 優先權 是否持久化等 2.交換器 用來接收生產者傳送的訊息,並將訊息路由給伺服器中的佇列,有四種型別 direct 預設 fanout topic headers direc...

佇列 基本概念 順序佇列

一 基本概念 佇列 queue 是只允許在一端進行插入操作,而在另一端進行刪除操作的線性表。佇列是一種先進先出 first in first out 的線性表,簡稱fifo。允許插入的一端稱為隊尾,允許刪除的一端稱為隊頭。佇列基本操作 initqueue 初始化佇列 enqueue 進佇列 dequ...

訊息佇列 概念篇

寫在前面 在專案中總是用到的乙個中介軟體就是訊息佇列,從以前的redis到後來用到的rabbitmq,再到即將要研究的kafka,一直只知道用,卻沒有進行好好總結。正如有句話說的,你知道的越多,你不知道也就越多。以下文章是對過去的總結,以及對未來的展望。缺點2.通訊模式 訊息是指在應用間傳送的資料,...