日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

java鏈表應用--基于鏈表實現隊列詳解(尾指針操作)

瀏覽:168日期:2022-09-04 11:56:48

本文實例講述了java基于鏈表實現隊列。分享給大家供大家參考,具體如下:

在開始棧的實現之前,我們再來看看關于鏈表的只在頭部進行的增加、刪除、查找操作,時間復雜度均為O(1)。

java鏈表應用--基于鏈表實現隊列詳解(尾指針操作)

java鏈表應用--基于鏈表實現隊列詳解(尾指針操作)

一、鏈表改進分析

對于隊列這種數據結構,需要在線性結構的一端插入元素,另外一端刪除元素。因此此時基于鏈表來實現隊列,則有一端的時間復雜度為O(n)。因此我們不能使用之前已經實現的鏈表結構,我們需要改進我們的鏈表。思路如下:

1.參考在鏈表頭部刪除、增加元素的時間復雜度為O(1)的思路,我們在鏈表的尾部設立一個Node型的變量tail來記錄鏈表的尾部在哪,此時再head端和tail端添加元素都是及其簡單的,在head端刪除元素也是及其簡單的,但對于在tail端刪除元素時,是無法在時間復雜度為O(1)的情況進行的,也就是從tail端刪除元素時不容易的。

java鏈表應用--基于鏈表實現隊列詳解(尾指針操作)

2.只在頭部head刪除元素(隊首),在尾部tail端添加元素(隊尾)。

java鏈表應用--基于鏈表實現隊列詳解(尾指針操作)

3.由于在基于鏈表實現隊列時不涉及到操作鏈表中間元素,此時我們改進的鏈表中,不在使用虛擬頭節,因此也就可能造成在沒有虛擬頭節點的情況下,鏈表為空。

二、鏈表改進代碼

前言,在寫本小節之前,我們已經實現了一個基于靜態數組的隊列,轉到查看。此處我們實現基于鏈表的隊列。

在實現基于靜態數組的隊列的時候,我們已經新建了一個package,此時我們在該package下新建一個LinkedListQueue類,用來實現Queue接口,目錄結構為:

java鏈表應用--基于鏈表實現隊列詳解(尾指針操作)

1.Queue接口代碼

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

2.LinkedListQueue類

package Queue;public class LinkedListQueue<E> implements Queue<E> { //將Node節點設計成私有的類中類 private class Node<E> { public E e; public Node next; //兩個參數的構造函數 public Node(E e, Node next) { this.e = e; this.next = next; } //一個參數的構造函數 public Node(E e) { this.e = e; this.next = null; } //無參構造函數 public Node() { this(null, null); } @Override public String toString() { return e.toString(); } } private Node<E> head, tail; private int size; //顯示初始化 public LinkedListQueue() { head = null; tail = null; size = 0; } //獲取隊列中節點個數 @Override public int getSize() { return size; } //隊列中是否為空 @Override public boolean isEmpty() { return size == 0; } //鏈表尾部進隊操作 @Override public void enqueue(E e) { if (tail == null) { tail = new Node(e); head = tail; } else { tail.next = new Node(e); tail = tail.next; } size++; } //鏈表頭部出隊操作 @Override public E dequeue() { if (isEmpty()) { throw new IllegalArgumentException('鏈表為空'); } Node<E> retNode = head; head = head.next; retNode.next = null; if (head == null) {//當鏈表只有一個元素時 tail = null; } size--; return retNode.e; } //獲取隊首元素 @Override public E getFront() { if (isEmpty()) { throw new IllegalArgumentException('鏈表為空'); } return head.e; } //為了便于測試,重寫object類toString()方法 @Override public String toString() { StringBuilder res = new StringBuilder(); res.append('Queue: front '); Node<E> cur = head; while (cur != null) { res.append(cur + '->'); cur = cur.next; } res.append('NULL tail'); return res.toString(); }}

3.為了便于測試,在LinkedListQueue類中添加一個main函數

//測試用例 public static void main(String[] args) { LinkedListQueue<Integer> queue = new LinkedListQueue<Integer>(); for (int i = 0; i < 10; i++) { queue.enqueue(i); System.out.println(queue); if (i % 3 == 2) {//每添加3個元素出隊列一個queue.dequeue();System.out.println(queue); } } }

4.結果為

java鏈表應用--基于鏈表實現隊列詳解(尾指針操作)

結果分析:每進隊3個元素出隊列一個。

關于本小節,若您覺得還行、還過得去,記得給個推薦哦~,謝謝!!

本節源碼 https://github.com/FelixBin/dataStructure/blob/master/src/Queue/LinkedListQueue.java

更多關于java算法相關內容感興趣的讀者可查看本站專題:《Java數據結構與算法教程》、《Java操作DOM節點技巧總結》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》

希望本文所述對大家java程序設計有所幫助。

標簽: Java
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
免费欧美在线视频| 精品久久亚洲| 国产农村妇女精品一区二区| 丝袜亚洲另类欧美| 欧美日韩中出| 高清不卡亚洲| 免费毛片在线不卡| 午夜天堂精品久久久久| 里番精品3d一二三区| 日韩精品免费一区二区三区| 免费日韩av| 国产精品17p| 国产美女高潮在线| 久久亚洲不卡| 久久99久久人婷婷精品综合| 久久精品成人| 日欧美一区二区| 成人在线观看免费视频| 午夜久久99| 国产日韩欧美一区二区三区| 少妇久久久久| 日韩不卡一区二区| 日韩三区免费| 四虎精品一区二区免费| 激情不卡一区二区三区视频在线| 精品一区毛片| 欧美片第1页综合| 鲁鲁在线中文| 亚洲日本在线观看视频| 色综合狠狠操| 日本在线成人| 999国产精品视频| 欧美一区二区三区久久| 久久五月天小说| 国产视频一区二区在线播放| 欧美日韩水蜜桃| 国产欧美一区二区色老头| 国产91精品对白在线播放| 国产毛片久久久| 亚洲深夜影院| a国产在线视频| 欧美日本久久| 一区视频在线| 超碰成人av| 日本视频在线一区| 91高清一区| 国产一区2区| 日韩精品三级| 欧美午夜不卡| 91嫩草亚洲精品| 欧美日韩va| 亚洲综合国产| 92国产精品| 国产精品白丝久久av网站| 久久国产精品毛片| 久久蜜桃精品| 精品免费av一区二区三区| 男人操女人的视频在线观看欧美| 福利精品一区| 国产午夜精品一区在线观看| 中文在线一区| 亚洲v在线看| 久久69成人| 日韩和欧美的一区| 欧美中文字幕| 免费久久久久久久久| 久久毛片亚洲| 国产精品白丝av嫩草影院| 日韩精品三区四区| 一区二区国产在线| 在线视频精品| av亚洲免费| 亚洲精品**中文毛片| 你懂的国产精品永久在线| 日韩高清电影一区| 亚洲精品成a人ⅴ香蕉片| 免费久久99精品国产自在现线| 亚洲婷婷免费| 久久久9色精品国产一区二区三区| 成人国产精选| 国产在线视频欧美一区| 欧美激情三区| 蜜臀av免费一区二区三区| 日韩精品久久久久久久电影99爱| 国产一区三区在线播放| 精品一区二区三区中文字幕在线| 国产精品一区二区三区四区在线观看 | 久热re这里精品视频在线6| 精品网站999| 婷婷综合成人| 石原莉奈在线亚洲二区| 久久影视一区| 久久青青视频| 久久婷婷国产| 国产日韩一区二区三区在线| 亚洲精品1区| 久久久久欧美精品| 成人在线视频区| 国产精品扒开腿做爽爽爽软件| 人人爽香蕉精品| 模特精品在线| 黑丝一区二区三区| 亚洲91精品| 日韩理论片av| 夜鲁夜鲁夜鲁视频在线播放| 鲁大师精品99久久久| 国产视频网站一区二区三区| 日韩视频一二区| 亚洲毛片在线免费| 在线精品国产亚洲| 国产综合婷婷| 久久免费黄色| 99成人超碰| 日韩福利一区| 天堂√中文最新版在线| www.51av欧美视频 | 欧美亚洲免费| 日韩高清电影免费| 综合亚洲色图| 亚洲精品影视| 亚洲精品在线国产| 亚洲综合婷婷| 香蕉久久一区| 日韩福利视频一区| 婷婷视频一区二区三区| 日韩在线视频一区二区三区| 亚洲毛片一区| 欧美一级网站| 国产精品白丝一区二区三区| 欧美成a人片免费观看久久五月天| 国产福利一区二区三区在线播放| 日韩精品91亚洲二区在线观看| 日韩欧美另类中文字幕| 91精品丝袜国产高跟在线| 欧美日韩视频免费看| 麻豆精品在线视频| 吉吉日韩欧美| 好看不卡的中文字幕| 蜜桃久久精品一区二区| 亚洲人成网站在线在线观看| 欧美亚洲综合视频| 久久99久久久精品欧美| av中文资源在线资源免费观看| 成人啊v在线| 中文久久精品| 日本亚洲欧洲无免费码在线| 亚洲人成在线影院| 国产精品一国产精品k频道56| 美日韩一区二区三区| av在线最新| 99pao成人国产永久免费视频| 成人日韩av| 国产中文在线播放| 亚洲精品日韩久久| 精品不卡一区| 日韩中文字幕亚洲一区二区va在线| 国产极品一区| 伊人久久成人| 国产精品v亚洲精品v日韩精品| 视频在线观看91| 高潮久久久久久久久久久久久久| 久久av在线| 91亚洲一区| 亚洲69av| 亚洲不卡av不卡一区二区| 日韩av一区二区在线影视| 欧美影院视频| 9久re热视频在线精品| 亚洲免费成人| 亚久久调教视频| 色爱综合网欧美| 丝袜a∨在线一区二区三区不卡| 国产精品超碰| 午夜日韩福利| 国产亚洲欧美日韩精品一区二区三区| 国产91欧美| 美女精品网站| 国产一区二区三区日韩精品| 99国产精品自拍| 国产精品va视频| 亚洲福利久久| 国产精品亚洲欧美日韩一区在线| 欧洲一级精品| 欧美日韩a区| 国产一区日韩一区| 国产日产一区| 不卡视频在线| 麻豆中文一区二区| 国产麻豆综合| 精品国产成人| 一级成人国产| 电影天堂国产精品| 日韩国产精品久久久久久亚洲| 国产精选在线| 综合欧美精品| 久久中文字幕av一区二区不卡| 国产亚洲欧美日韩在线观看一区二区| 亚洲欧美一区在线| 午夜精品一区二区三区国产| 日韩精品视频在线看|