我們知道隊列這種數(shù)據(jù)結(jié)構(gòu)的物理實現(xiàn)方式主要還是兩種,一種是鏈隊列(自定義節(jié)點類),另一種則是使用數(shù)組實現(xiàn),兩者各有優(yōu)勢。此處我們將要介紹的循環(huán)隊列其實是隊列的一種具體實現(xiàn),由于一般的數(shù)組實現(xiàn)的隊列結(jié)構(gòu)在頻繁出隊的情況下,會產(chǎn)生假溢出現(xiàn)象,導(dǎo)致數(shù)組使用效率降低,所以引入循環(huán)隊列這種結(jié)構(gòu)。本文將從以下兩個大角度介紹循環(huán)隊列這種數(shù)據(jù)結(jié)構(gòu):

  • 循環(huán)數(shù)組實現(xiàn)循環(huán)隊列

  • Java中具體實現(xiàn)容器類ArrayDeque

一、循環(huán)隊列
     為了深刻體會到循環(huán)隊列這個結(jié)構(gòu)優(yōu)于非循環(huán)隊列的地方,我們將首先介紹數(shù)組實現(xiàn)的非循環(huán)隊列結(jié)構(gòu)。隊列這種數(shù)據(jù)結(jié)構(gòu),無論你是用鏈表實現(xiàn),還是用數(shù)組實現(xiàn),它都是要有兩個指針分別指向隊頭和隊尾。在我們數(shù)組的實現(xiàn)方式中,用兩個int型變量用于記錄隊頭和隊尾的索引。

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

一個隊列的初始狀態(tài),head和tail都指向初始位置(索引為0處)。head永遠指向該隊列的隊頭元素,tail則指向該隊列最后一個元素的下一位置,當有入隊操作時:

photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)
photoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)

網(wǎng)友評論