溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

web開發(fā)中隊列屬于什么數(shù)據(jù)結(jié)構(gòu)

發(fā)布時間:2020-12-28 10:06:40 來源:億速云 閱讀:148 作者:小新 欄目:互聯(lián)網(wǎng)科技

這篇文章主要介紹了web開發(fā)中隊列屬于什么數(shù)據(jù)結(jié)構(gòu),具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

隊列是一種線性數(shù)據(jù)結(jié)構(gòu);隊列只允許在表的前端進行刪除操作,而在表的后端進行插入操作,和棧一樣,隊列是一種操作受限制的線性表;其進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。

隊列是一種線性數(shù)據(jù)結(jié)構(gòu)。

隊列是一種特殊的線性表,特殊之處在于它只允許在表的前端(front)進行刪除操作,而在表的后端(rear)進行插入操作,和棧一樣,隊列是一種操作受限制的線性表。進行插入操作的端稱為隊尾,進行刪除操作的端稱為隊頭。隊列中沒有元素時,稱為空隊列。

隊列的數(shù)據(jù)元素又稱為隊列元素。在隊列中插入一個隊列元素稱為入隊,從隊列中刪除一個隊列元素稱為出隊。因為隊列只允許在一端插入,在另一端刪除,所以只有最早進入隊列的元素才能最先從隊列中刪除,故隊列又稱為先進先出(FIFO—first in first out)線性表。

順序隊列

建立順序隊列結(jié)構(gòu)必須為其靜態(tài)分配或動態(tài)申請一片連續(xù)的存儲空間,并設(shè)置兩個指針進行管理。一個是隊頭指針front,它指向隊頭元素;另一個是隊尾指針rear,它指向下一個入隊元素的存儲位置,如圖所示

web開發(fā)中隊列屬于什么數(shù)據(jù)結(jié)構(gòu)

每次在隊尾插入一個元素是,rear增1;每次在隊頭刪除一個元素時,front增1。隨著插入和刪除操作的進行,隊列元素的個數(shù)不斷變化,隊列所占的存儲空間也在為隊列結(jié)構(gòu)所分配的連續(xù)空間中移動。當(dāng)front=rear時,隊列中沒有任何元素,稱為空隊列。當(dāng)rear增加到指向分配的連續(xù)空間之外時,隊列無法再插入新元素,但這時往往還有大量可用空間未被占用,這些空間是已經(jīng)出隊的隊列元素曾經(jīng)占用過得存儲單元。

順序隊列中的溢出現(xiàn)象:

(1) "下溢"現(xiàn)象:當(dāng)隊列為空時,做出隊運算產(chǎn)生的溢出現(xiàn)象?!跋乱纭笔钦,F(xiàn)象,常用作程序控制轉(zhuǎn)移的條件。

(2)"真上溢"現(xiàn)象:當(dāng)隊列滿時,做進棧運算產(chǎn)生空間溢出的現(xiàn)象?!罢嫔弦纭笔且环N出錯狀態(tài),應(yīng)設(shè)法避免。

(3)"假上溢"現(xiàn)象:由于入隊和出隊操作中,頭尾指針只增加不減小,致使被刪元素的空間永遠無法重新利用。當(dāng)隊列中實際的元素個數(shù)遠遠小于向量空間的規(guī)模時,也可能由于尾指針已超越向量空間的上界而不能做入隊操作。該現(xiàn)象稱為"假上溢"現(xiàn)象。

循環(huán)隊列

在實際使用隊列時,為了使隊列空間能重復(fù)使用,往往對隊列的使用方法稍加改進:無論插入或刪除,一旦rear指針增1或front指針增1 時超出了所分配的隊列空間,就讓它指向這片連續(xù)空間的起始位置。自己真從MaxSize-1增1變到0,可用取余運算rear%MaxSize和front%MaxSize來實現(xiàn)。這實際上是把隊列空間想象成一個環(huán)形空間,環(huán)形空間中的存儲單元循環(huán)使用,用這種方法管理的隊列也就稱為循環(huán)隊列。除了一些簡單應(yīng)用之外,真正實用的隊列是循環(huán)隊列。

在循環(huán)隊列中,當(dāng)隊列為空時,有front=rear,而當(dāng)所有隊列空間全占滿時,也有front=rear。為了區(qū)別這兩種情況,規(guī)定循環(huán)隊列最多只能有MaxSize-1個隊列元素,當(dāng)循環(huán)隊列中只剩下一個空存儲單元時,隊列就已經(jīng)滿了。因此,隊列判空的條件時front=rear,而隊列判滿的條件時front=(rear+1)%MaxSize。隊空和隊滿的情況如圖:

web開發(fā)中隊列屬于什么數(shù)據(jù)結(jié)構(gòu)

感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“web開發(fā)中隊列屬于什么數(shù)據(jù)結(jié)構(gòu)”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!

向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

web
AI