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

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

Java鏈表中添加元素的原理與實現方法詳解

瀏覽:148日期:2022-09-04 13:24:43

本文實例講述了Java鏈表中添加元素的原理與實現方法。分享給大家供大家參考,具體如下:

1.鏈表中頭節點的引入

1.1基本的鏈表結構:

Java鏈表中添加元素的原理與實現方法詳解

1.2對于鏈表來說,若想訪問鏈表中每個節點則需要把鏈表的頭存起來,假如鏈表的頭節點為head,指向鏈表中第一個節點,如圖:

Java鏈表中添加元素的原理與實現方法詳解

1.3使用代碼表示此時的鏈表

//定義頭節點 private Node head; //節點個數 private int size; //無參數構造函數 public LinkedList() { head = null; size = 0; } //獲取鏈表中的元素個數 public int getSize() { return size; } //返回鏈表是否為空 public boolean isEmpty() { return size == 0; } 2.在鏈表頭添加元素

2.1初始時,假設鏈表如下:

Java鏈表中添加元素的原理與實現方法詳解

2.2 如在鏈表頭添加一個666元素則需要先將666放進一個節點里,在節點里存入這個元素以及相應的next。

Java鏈表中添加元素的原理與實現方法詳解

操作如下:

第一步:現將666這個節點(node)的next指向head,代碼如下:

node.next=head

圖示為:

Java鏈表中添加元素的原理與實現方法詳解

第二步:然后再將head指向新的節點666

head=node

圖示為:

Java鏈表中添加元素的原理與實現方法詳解

通過第一步、第二步,我們就成功將新節點添加到頭節上。此時node這個變量也就結束了此輪的工作,結果變為:

Java鏈表中添加元素的原理與實現方法詳解

2.3 在鏈表頭添加新元素的相關代碼

//在鏈表頭添加新的元素e public void addFirst(E e) { Node node = new Node(e); node.next = head; head = node; size++; }

等同于:

//在鏈表頭添加新的元素e public void addFirst(E e) { head = new Node(e, head); size++; }

2.4 在鏈表中間添加元素

假設初始鏈表為:

Java鏈表中添加元素的原理與實現方法詳解

假設我們需要在索引為2的位置添加元素666(此時的索引為2只是用來說明我們此時需要操作的位置,并不是真正的索引意思)

操作步驟:

1):創建出666這個節點

Java鏈表中添加元素的原理與實現方法詳解

2):使用一個變量prev來標識在需要插入節點的地方的前一個節點,初始時prev和頭節點head是相同的。

Java鏈表中添加元素的原理與實現方法詳解

對于此處我們需要在索引為2的位置插入新元素,我們只需要找到索引為2的前一個位置(索引為1),然后把prev指向索引為1節點即可。

Java鏈表中添加元素的原理與實現方法詳解

3):進行元素添加操作

第一步:先將node的next指向prev的下一個節點元素

node.next=prev.next

Java鏈表中添加元素的原理與實現方法詳解

第二步:再將prev的next指向node

prev.next=node

Java鏈表中添加元素的原理與實現方法詳解

通過第一步、第二步即可將新元素插入到索引為2的地方。

從上不難看出,對于在鏈表中添加元素關鍵是找到要添加的節點的前一個節點,因此對于在索引為0的節點添加元素就需要單獨處理。

關于在鏈表中間添加元素的代碼:

//在鏈表的index(0--based)的位置添加新的元素e (實際不常用,練習用) public void add(int index, E e) { if (index < 0 || index > size) { throw new IllegalArgumentException('位置不合法'); } //對于頭節點的特殊處理 if (index == 0) { addFirst(e); } else { Node prev = head; for (int i = 0; i < index - 1; i++) {//獲取到需要添加元素位置的前一個元素prev = prev.next; } Node node = new Node(e); node.next = prev.next; prev.next = node; size++; } }

此時代碼等同于:

//在鏈表的index(0--based)的位置添加新的元素e (時間不常用,練習用) public void add(int index, E e) { if (index < 0 || index > size) { throw new IllegalArgumentException('位置不合法'); } //對于頭節點的特殊處理 if (index == 0) { addFirst(e); } else { Node prev = head; for (int i = 0; i < index - 1; i++) {//獲取到需要添加元素位置的前一個元素prev = prev.next; }// Node node = new Node(e);// node.next = prev.next;// prev.next = node; prev.next=new Node(e,prev.next); size++; } }3.在鏈表尾部添加元素

這里復用上述的add()方法

//在鏈表末尾添加新的元素 public void addLast(E e){ add(size,e); }

本小節完整代碼:

package LinkedList;public class LinkedList<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 head; //節點個數 private int size; //無參數構造函數 public LinkedList() { head = null; size = 0; } //獲取鏈表中的元素個數 public int getSize() { return size; } //返回鏈表是否為空 public boolean isEmpty() { return size == 0; } //在鏈表頭添加新的元素e public void addFirst(E e) { head = new Node(e, head); size++; } //在鏈表的index(0--based)的位置添加新的元素e (實際不常用,練習用) public void add(int index, E e) { if (index < 0 || index > size) { throw new IllegalArgumentException('位置不合法'); } //對于頭節點的特殊處理 if (index == 0) { addFirst(e); } else { Node prev = head; for (int i = 0; i < index - 1; i++) {//獲取到需要添加元素位置的前一個元素prev = prev.next; }// Node node = new Node(e);// node.next = prev.next;// prev.next = node; prev.next=new Node(e,prev.next); size++; } } //在鏈表末尾添加新的元素 public void addLast(E e){ add(size,e); }}

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

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

標簽: Java
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
亚洲色欲色欲www在线观看| 日日夜夜一区二区| 亚洲精品成人精品456| 91热门视频在线观看| 日韩一区二区三区电影 | 精品夜夜嗨av一区二区三区| 国产日韩欧美综合精品| 国产精品国产馆在线真实露脸| 成人av资源站| 欧美一区二区网站| 国产suv精品一区二区883| 欧美日韩午夜在线| 日韩激情在线观看| 可以免费看不卡的av网站| 一区二区三区日韩在线观看| 亚洲午夜激情在线| 久久久国产一区二区三区四区小说| 国产精品一区二区在线观看网站| 欧美日韩在线精品一区二区三区激情 | 99国产精品久久久久久久 | 中文字幕高清一区| 欧美成人一区二免费视频软件| 久久九九久久九九| 99久久免费国产| 亚洲精品在线电影| 99riav久久精品riav| 久久看人人爽人人| 欧美在线免费| 国产女主播一区| 美女在线一区二区| 欧美日韩另类一区| 国产一区二区网址| 日韩精品中文字幕一区| 国产福利91精品一区二区三区| 欧美一区二区三区四区高清| 成人一区二区视频| 久久久久久久久免费| 亚洲欧美在线网| 国产精品久久久久久久久搜平片| 欧美黄色精品| 亚洲精品你懂的| 久久最新视频| 国产一区二区三区精品欧美日韩一区二区三区| 日韩一区二区在线观看视频播放| 不卡的av网站| 中文字幕中文字幕在线一区 | 五月天视频一区| 欧洲国产伦久久久久久久| 六月婷婷色综合| 在线不卡中文字幕播放| www.欧美日韩| 成人午夜视频网站| 国产精品久久久久9999吃药| 国产亚洲成人一区| 欧美中文字幕一区| 91一区二区在线| 欧美亚洲一级| 粉嫩av亚洲一区二区图片| 一区二区三区在线观看国产| 亚洲欧美亚洲| 亚洲国产视频一区二区| 欧美在线观看视频一区二区三区 | 国产91在线看| 中文文精品字幕一区二区| 国产精品区免费视频| 久久精品二区亚洲w码| 2021中文字幕一区亚洲| 亚洲福利av| 美日韩黄色大片| 久久欧美中文字幕| 国产欧美日韩在线播放 | 欧美成人69av| 亚洲h在线观看| 91超碰这里只有精品国产| www.爱久久.com| 亚洲精品一卡二卡| 欧美情侣在线播放| 欧美精品二区三区四区免费看视频| 亚洲欧美韩国综合色| 欧美日韩不卡视频| 欧美精品福利| 婷婷一区二区三区| 精品国产91洋老外米糕| 国产欧美日韩一级| 国产福利一区在线| 亚洲精品国产第一综合99久久| 欧美午夜寂寞影院| 国语自产精品视频在线看抢先版结局 | 91福利资源站| 91视频一区二区三区| 亚洲h在线观看| 日韩精品影音先锋| 国产精品久久久久久久久婷婷| 国产乱人伦偷精品视频不卡| 国产精品美女一区二区三区 | 午夜精品久久久久影视| 欧美成人三级电影在线| 夜夜爽99久久国产综合精品女不卡| 精品一区二区三区在线播放| 亚洲日本护士毛茸茸| 欧美一区二区在线看| 国产精品日韩欧美一区二区| 国产a久久麻豆| 亚洲国产精品视频| 2020国产成人综合网| 91国在线观看| 亚洲一级一区| 国产成人午夜视频| 亚洲综合在线电影| 精品捆绑美女sm三区| 亚洲欧美国产不卡| 99久久99久久免费精品蜜臀| 日韩在线播放一区二区| 国产精品入口麻豆九色| 欧美日本在线观看| 中文日韩欧美| 99re这里只有精品视频首页| 热久久久久久久| 亚洲欧美国产毛片在线| 久久综合成人精品亚洲另类欧美 | 在线一区二区观看| 在线观看一区视频| 成人性色生活片| 日韩不卡手机在线v区| 国产精品成人免费在线| 欧美成人a∨高清免费观看| 91九色02白丝porn| 99精品福利视频| 91老师片黄在线观看| 韩国欧美一区二区| 性做久久久久久久久| 国产无人区一区二区三区| 欧美综合在线视频| 国产一区二区久久久| 99国产麻豆精品| 国产一区二区电影| 天天色天天操综合| 亚洲另类在线制服丝袜| 国产肉丝袜一区二区| 日韩午夜在线影院| 欧美视频日韩视频在线观看| 久久精品中文| 在线综合亚洲| 在线成人亚洲| 韩国免费一区| 午夜激情一区| 99久久综合狠狠综合久久| 国产乱码精品一品二品| 奇米精品一区二区三区在线观看一| 亚洲乱码国产乱码精品精98午夜 | 精品久久久久久无| 在线综合视频播放| 欧美亚洲自拍偷拍| 91久久国产最好的精华液| 美女黄网久久| 国产伦精品一区二区三区高清版| 亚洲欧洲一区二区天堂久久| 欧美日韩视频在线一区二区观看视频| 成人免费视频免费观看| 国产精品一二三区在线| 国内精品伊人久久久久av一坑| 日韩精品视频网| 日韩av不卡在线观看| 午夜精品视频一区| 视频一区二区三区中文字幕| 亚洲成人av福利| 午夜精品免费在线观看| 婷婷亚洲久悠悠色悠在线播放 | 99国产精品视频免费观看| a亚洲天堂av| 不卡的av在线| 91小视频免费看| av网站免费线看精品| 欧美91福利在线观看| 欧美日韩精选| 在线视频观看日韩| 亚洲国产一区二区三区a毛片| 亚洲第一在线| 夜夜精品视频| 国产伦精品一区二区三区高清版| 国产精品美女xx| 国产精品日韩高清| 午夜亚洲精品| 一本色道综合亚洲| 欧美在线视频你懂得| 8x福利精品第一导航| 日韩欧美aaaaaa| 久久久夜色精品亚洲| 国产精品视频yy9299一区| 国产精品无遮挡| 亚洲男女一区二区三区| 亚洲国产三级在线| 日韩va欧美va亚洲va久久| 久久精品国产在热久久| 国产成人精品亚洲午夜麻豆| 成人黄色软件下载| 国产一区二区中文| 99视频精品| 色网站国产精品| 欧美一区二区福利在线|