真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Java循環(huán)隊(duì)列原理與用法詳解-創(chuàng)新互聯(lián)

本文實(shí)例講述了Java循環(huán)隊(duì)列原理與用法。分享給大家供大家參考,具體如下:

從策劃到設(shè)計(jì)制作,每一步都追求做到細(xì)膩,制作可持續(xù)發(fā)展的企業(yè)網(wǎng)站。為客戶提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、網(wǎng)站策劃、網(wǎng)頁(yè)設(shè)計(jì)、域名與空間、網(wǎng)頁(yè)空間、網(wǎng)絡(luò)營(yíng)銷、VI設(shè)計(jì)、 網(wǎng)站改版、漏洞修補(bǔ)等服務(wù)。為客戶提供更好的一站式互聯(lián)網(wǎng)解決方案,以客戶的口碑塑造優(yōu)易品牌,攜手廣大客戶,共同發(fā)展進(jìn)步。

在正式進(jìn)行循環(huán)隊(duì)列學(xué)習(xí)之前,我們先來(lái)看看在順序隊(duì)列中刪除隊(duì)首元素出現(xiàn)的問(wèn)題

(1)設(shè)一個(gè)容量為capacity=8,size=5(a,b,c,d,e)的數(shù)組,左側(cè)為隊(duì)首、右側(cè)為隊(duì)尾。

Java循環(huán)隊(duì)列原理與用法詳解

(2)出隊(duì)一個(gè)元素后,需整體往前移動(dòng)一位

#出隊(duì)

Java循環(huán)隊(duì)列原理與用法詳解

#2整體前移一位

Java循環(huán)隊(duì)列原理與用法詳解

關(guān)于該種操作方式我們很容易得出時(shí)間復(fù)雜度為O(n)。

這時(shí)我們就想可不可以在出隊(duì)元素后,整體元素不往前移,而是在數(shù)組中記下隊(duì)首front是誰(shuí),同時(shí)隊(duì)尾tail指向在下一次元素入隊(duì)時(shí)的位置,這樣當(dāng)再有出隊(duì)時(shí)只需要維護(hù)一下front的指向即可,而不需移動(dòng)元素。就這樣我們就有了循環(huán)隊(duì)列的情況。

Java循環(huán)隊(duì)列原理與用法詳解

2.循環(huán)隊(duì)列原理

(1)初始,數(shù)組整體為空時(shí),隊(duì)首front、隊(duì)尾tail指向同一個(gè)位置(數(shù)組索引為0的地方)也即front==tail 時(shí)隊(duì)列為空

Java循環(huán)隊(duì)列原理與用法詳解

(2)當(dāng)往數(shù)組中添加元素后,

Java循環(huán)隊(duì)列原理與用法詳解

(3)出隊(duì)一個(gè)元素,front指向新的位置

Java循環(huán)隊(duì)列原理與用法詳解

(4)入隊(duì)元素,tail疊加

Java循環(huán)隊(duì)列原理與用法詳解

(5)當(dāng)tail不能再增加時(shí),數(shù)組前面還有空余,此時(shí)循環(huán)隊(duì)列就該出場(chǎng)了。

Java循環(huán)隊(duì)列原理與用法詳解

此時(shí)數(shù)組應(yīng)該變?yōu)檫@樣:

Java循環(huán)隊(duì)列原理與用法詳解

在往數(shù)組中添加一個(gè)元素:

Java循環(huán)隊(duì)列原理與用法詳解

這樣數(shù)組就已經(jīng)滿了(tail+1==front 隊(duì)列滿),開(kāi)始出發(fā)擴(kuò)容操作?!綾apacity中,浪費(fèi)一個(gè)空間】。

為了tail能返回到數(shù)組的前面位置,將隊(duì)列滿的表達(dá)式變?yōu)?【(tail+1)%c==front】這樣數(shù)組就可以循環(huán)移動(dòng)了。

3.循環(huán)隊(duì)列代碼實(shí)現(xiàn)

新建一個(gè)類LoopQueue并實(shí)現(xiàn)接口Queue。

#1:接口Queue代碼如下:

package Queue;

public interface Queue {
  //獲取隊(duì)列中元素個(gè)數(shù)
  int getSize();

  //隊(duì)列中元素是否為空
  boolean isEmpty();

  //入隊(duì)列
  void enqueue(E e);

  //出隊(duì)列
  E dequeue();

  //獲取隊(duì)首元素
  E getFront();
}

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)建站www.cdcxhl.com,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


分享標(biāo)題:Java循環(huán)隊(duì)列原理與用法詳解-創(chuàng)新互聯(lián)
標(biāo)題網(wǎng)址:http://weahome.cn/article/ihhdo.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部