成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術(shù)文章
文章詳情頁

Java數(shù)組隊(duì)列概念與用法實(shí)例分析

瀏覽:131日期:2022-09-04 13:37:52

本文實(shí)例講述了Java數(shù)組隊(duì)列概念與用法。分享給大家供大家參考,具體如下:

一.隊(duì)列的概念

(1)隊(duì)列也是一種線性結(jié)構(gòu)

(2)相比數(shù)組,隊(duì)列對(duì)應(yīng)的操作是數(shù)組的子集

(3)只允許在一端插入數(shù)據(jù)操作,在另一端進(jìn)行刪除數(shù)據(jù)操作,進(jìn)行插入操作的一端稱為隊(duì)尾(入隊(duì)列),進(jìn)行刪除操作的一端稱為隊(duì)頭(出隊(duì)列)

(4)隊(duì)列是一種先進(jìn)先出的數(shù)據(jù)結(jié)構(gòu)(FIFO)

此處我們先來學(xué)習(xí)一下順序隊(duì)列 ,順序隊(duì)列 就是用數(shù)組實(shí)現(xiàn):比如有一個(gè)n個(gè)元素的隊(duì)列,數(shù)組下標(biāo)0的一端是隊(duì)頭,入隊(duì)操作就是通過數(shù)組下標(biāo)一個(gè)個(gè)順序追加,不需要移動(dòng)元素,但是如果刪除隊(duì)頭元素,后面的元素就要往前移動(dòng),對(duì)應(yīng)的時(shí)間復(fù)雜度就是O(n)。

Java數(shù)組隊(duì)列概念與用法實(shí)例分析

對(duì)于隊(duì)列,我們關(guān)注的相關(guān)實(shí)現(xiàn)如下:

Java數(shù)組隊(duì)列概念與用法實(shí)例分析

二、代碼實(shí)現(xiàn)

對(duì)于該節(jié)的相關(guān)代碼,我們新建一個(gè)package(Queue),同時(shí)為了理解方便,此時(shí)把動(dòng)態(tài)數(shù)組相關(guān)代碼拷貝到該包中。

1.先創(chuàng)建一個(gè)Queue接口,里面定義上面所述的方法

package Queue;public interface Queue<E> { //獲取隊(duì)列中元素個(gè)數(shù) int getSize(); //隊(duì)列中元素是否為空 boolean isEmpty(); //入隊(duì)列 void enqueue(E e); //出隊(duì)列 E dequeue(); //獲取隊(duì)首元素 E getFront();}

2.創(chuàng)建一個(gè)類ArrayQueue實(shí)現(xiàn)Queue接口并重寫Object類的toString()方法

package Queue;public class ArrayQueue<E> implements Queue<E> { private DynamicArray<E> array; //構(gòu)造函數(shù),傳入隊(duì)列的容量capacity構(gòu)造函數(shù) public ArrayQueue(int capacity) { array = new DynamicArray<E>(capacity); } //無參構(gòu)造函數(shù),默認(rèn)隊(duì)列的容量capacity=10 public ArrayQueue() { array = new DynamicArray<E>(); } //獲取隊(duì)列中元素?cái)?shù)據(jù)是否為空 @Override public boolean isEmpty() { return array.isEmpty(); } //獲取隊(duì)列中元素個(gè)數(shù) @Override public int getSize() { return array.getSize(); } //獲取隊(duì)列的容量 public int getCapacity() { return array.getCapacity(); } //入隊(duì)操作 @Override public void enqueue(E e) { array.addLast(e); } //出隊(duì)操作 @Override public E dequeue() { return array.removeFirst(); } //獲取隊(duì)首元素 @Override public E getFront() { return array.getFirst(); } //重寫object類的toString方法 @Override public String toString() { StringBuilder res = new StringBuilder(); res.append('Queue:'); res.append('front [');//體現(xiàn)左側(cè)為隊(duì)首 for (int i = 0; i < array.getSize(); i++) { res.append(array.get(i)); if (i != array.getSize() - 1) {res.append(','); } } res.append('] tail');//體現(xiàn)右側(cè)為隊(duì)尾 return res.toString(); }}

3.測試

新建一個(gè)TestMain類,添加一個(gè)main函數(shù)來測試我們編寫好的ArrayQueue類

相關(guān)代碼如下:

package Queue;public class TestMain { public static void main(String[] args) { ArrayQueue<Integer> queue = new ArrayQueue<Integer>(); for (int i = 0; i < 10; i++) { queue.enqueue(i); System.out.println(queue); if(i%3==2){//每添加3個(gè)元素出隊(duì)列一個(gè)queue.dequeue();System.out.println(queue); } } }}

對(duì)于第7行代碼是測試入隊(duì)列操作的,第10、11行代碼的意思是每添加3個(gè)元素出隊(duì)列一個(gè)元素。結(jié)果為:

Java數(shù)組隊(duì)列概念與用法實(shí)例分析

三、數(shù)組隊(duì)列的復(fù)雜度分析

Java數(shù)組隊(duì)列概念與用法實(shí)例分析

對(duì)于出隊(duì)的時(shí)間復(fù)雜度為O(n)的解釋:

由于實(shí)現(xiàn)數(shù)組隊(duì)列的底層是動(dòng)態(tài)數(shù)組,入隊(duì)操作就是通過數(shù)組下標(biāo)一個(gè)個(gè)順序追加,不需要移動(dòng)元素,但是如果刪除隊(duì)頭元素(removeFirst()方法),后面的元素就要往前移動(dòng),對(duì)應(yīng)的時(shí)間復(fù)雜度就是O(n)。這樣當(dāng)有數(shù)組中有大量數(shù)據(jù)時(shí)性能肯定是不好的,下一節(jié)我們將進(jìn)行改進(jìn),使得出隊(duì)的時(shí)間復(fù)雜度為O(1)。

源碼地址 https://github.com/FelixBin/dataStructure/tree/master/src/Queue

更多關(guān)于java算法相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Java數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Java操作DOM節(jié)點(diǎn)技巧總結(jié)》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》

希望本文所述對(duì)大家java程序設(shè)計(jì)有所幫助。

標(biāo)簽: Java
相關(guān)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
99久久精品国产一区二区三区 | 夜久久久久久| 欧美一级在线视频| 五月天欧美精品| 99视频一区| 国产精品动漫网站| 91伊人久久大香线蕉| 91精品国产91久久久久久一区二区| 日韩经典中文字幕一区| 国产精品区免费视频| 国产精品久久久久久久久免费丝袜 | 日韩免费成人网| 久久电影网站中文字幕| 国产欧美午夜| 一区二区免费在线播放| 亚洲国产第一| 亚洲女爱视频在线| 1024成人| 亚洲欧美日韩久久| 永久域名在线精品| 久久美女艺术照精彩视频福利播放| 激情综合色综合久久综合| 一本大道久久a久久综合| 久久一留热品黄| 国产呦萝稀缺另类资源| 免费在线观看成人av| 亚洲欧洲日韩综合一区二区| 99re免费视频精品全部| 欧美视频在线播放| 亚洲精品免费视频| 日韩亚洲不卡在线| 国产精品萝li| 亚洲成va人在线观看| 亚洲成人原创| 久久精品免视看| 国产不卡高清在线观看视频| 在线观看www91| 午夜精品久久久久久久| 亚洲毛片av| 国产日韩精品一区二区三区在线| 国产一区在线看| 欧美午夜精品免费| 亚洲h动漫在线| 国产一区二区三区的电影| 国产精品福利一区二区| 色综合久久综合网97色综合| 欧美成人一区二区| 国产成人精品亚洲日本在线桃色| 欧美日韩另类国产亚洲欧美一级| 日韩高清一区二区| 久久成人免费| 亚洲国产毛片aaaaa无费看 | 亚洲激情五月婷婷| 欧美日韩一区在线播放| 久久综合九色综合久久久精品综合| 国产91在线观看丝袜| 欧美精品三级在线观看| 六月婷婷色综合| 欧美三级日韩在线| 久久国产精品99久久人人澡| 在线欧美小视频| 久久99精品网久久| 欧美日韩久久一区| 国产很黄免费观看久久| 久久美女高清视频| 欧美精品国产一区| 久久精品一级爱片| 欧美日韩一区在线播放 | 精品国产乱码91久久久久久网站| 国产精品综合久久| 欧美二区乱c少妇| 国产福利电影一区二区三区| 欧美精品久久一区二区三区| 国产一区在线观看视频| 91精品国产品国语在线不卡| 国产91丝袜在线18| 精品91自产拍在线观看一区| 99久久精品国产一区| 日韩欧美在线观看一区二区三区| 国产乱人伦精品一区二区在线观看| 欧美日韩国产综合草草| 免费高清在线一区| 欧美日韩国产在线观看| 国产精品一区二区在线播放| 日韩欧美国产午夜精品| 99麻豆久久久国产精品免费 | 一区二区高清视频在线观看| 久久精品亚洲| 青草国产精品久久久久久| 欧美天堂一区二区三区| 激情五月播播久久久精品| 欧美一级搡bbbb搡bbbb| 99国内精品久久| 国产欧美一区二区精品性色 | 国产精品二区一区二区aⅴ污介绍| 国产日韩一区二区三区在线| 图片区小说区国产精品视频| 欧美无砖砖区免费| 国产.欧美.日韩| 国产女人18毛片水真多成人如厕| 国产精品国产三级欧美二区| 亚洲一区二区三区不卡国产欧美| 欧美亚洲尤物久久| 国产成人av资源| 国产精品视频免费| 免费中文字幕日韩欧美| 久久av中文字幕片| 欧美精品一区二区三区久久久 | 欧美va天堂在线| 亚洲日本一区二区三区| 另类av一区二区| 国产一区二区三区免费观看| 久久综合色8888| 在线成人www免费观看视频| 天堂成人国产精品一区| 欧美一级理论片| 欧美日韩一区二区高清| 亚洲一卡二卡三卡四卡无卡久久| 在线视频你懂得一区二区三区| 国产91精品一区二区麻豆网站 | 国产精品免费看片| 亚洲一级在线| 国产精品原创巨作av| 欧美国产日韩精品免费观看| 国产亚洲综合精品| 国产真实乱对白精彩久久| www精品美女久久久tv| 欧美日韩精品一区| 婷婷久久综合九色综合绿巨人| 91精品国产乱| 伊人久久成人| 日韩精品一卡二卡三卡四卡无卡| 国产日产精品一区| 久久精品一二三区| 成人听书哪个软件好| 一区二区三区中文字幕电影| 欧美日韩成人高清| 91啦中文在线观看| 亚洲永久精品大片| 精品视频1区2区3区| 色综合天天综合网国产成人综合天 | 亚洲第四色夜色| 欧美一卡2卡3卡4卡| 亚洲理论在线| 国产精品香蕉一区二区三区| 亚洲天堂福利av| 欧美日韩国产影片| 影音先锋久久久| 久久99久久久欧美国产| 精品国产一区二区三区久久影院 | 国产精品一二三区在线| 自拍偷拍欧美激情| 这里只有精品电影| 日韩午夜高潮| 国产suv精品一区二区三区| 一区二区三区精品在线| 日韩一区二区电影| 日韩视频在线播放| 国产黄色精品网站| 亚洲午夜免费电影| 久久天天做天天爱综合色| 日本韩国一区二区三区| 欧美一区激情| 久久精品999| 亚洲精品水蜜桃| 欧美大片一区二区三区| 久久青青草原一区二区| 红桃视频亚洲| 丰满岳乱妇一区二区三区| 亚洲大片精品永久免费| 久久嫩草精品久久久久| 在线观看亚洲一区| 亚洲清纯自拍| av不卡免费电影| 久久精品国产免费看久久精品| 一区二区中文视频| 精品国产乱码久久久久久浪潮| 免费久久99精品国产自在现线| 91麻豆免费看片| 国内精品视频一区二区三区八戒| 一区二区高清免费观看影视大全| 久久婷婷一区二区三区| 欧美日韩免费不卡视频一区二区三区| 永久91嫩草亚洲精品人人| 大胆欧美人体老妇| 日韩有码一区二区三区| 亚洲美女视频一区| 国产日韩欧美a| 日韩免费观看高清完整版在线观看| 麻豆成人在线播放| 国内一区二区在线视频观看 | 国产日产精品一区二区三区四区的观看方式| 国产成人日日夜夜| 日韩高清中文字幕一区| 亚洲免费伊人电影| 久久久久久久综合色一本| 91精品免费在线| 欧美视频你懂的| 91黄色在线观看| 羞羞视频在线观看欧美|