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

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

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

瀏覽:171日期: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
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
在线亚洲欧美| 999精品在线| 一本综合精品| 玖玖玖国产精品| 蜜桃av一区| 天堂精品久久久久| 日韩av一区二| 日韩和欧美一区二区三区| 日本麻豆一区二区三区视频| 欧美日韩va| 精品伊人久久久| 偷拍精品精品一区二区三区| 亚洲国内精品| 亚洲影视一区| 国产香蕉精品| 精品国产鲁一鲁****| 精品国产aⅴ| 日韩中文影院| 欧美成人高清| 精品91久久久久| 亚洲伊人精品酒店| 国产欧美日韩精品一区二区免费 | 久久狠狠久久| 麻豆成人在线观看| 成人片免费看| 国产亚洲亚洲| 日本va欧美va精品发布| 久久精品国产成人一区二区三区| 91一区二区三区四区| 免费视频国产一区| 免费久久精品视频| 国产日韩一区二区三区在线播放| 国产精品va| 亚洲精品在线影院| 亚洲综合日本| 国产精品极品| 99精品美女| 亚洲人成在线影院| 精品视频97| 激情五月色综合国产精品| 久久福利一区| 欧美a级一区二区| 亚洲精品国产偷自在线观看| 亚洲精品欧美| 国产suv精品一区二区四区视频| 久久久亚洲一区| 亚洲黄色影院| 欧美专区一区| 成人看片网站| 亚洲精品少妇| 日韩伦理福利| 日本成人精品| 久久九九电影| 国产欧美三级| 美女网站一区| 久久成人福利| 视频一区二区中文字幕| 精品视频97| 三级欧美韩日大片在线看| 国产成人精品三级高清久久91| 乱人伦精品视频在线观看| 国产精品毛片视频| 日韩视频在线一区二区三区| 精品国产一区二区三区av片| 免费的成人av| 丝袜美腿一区| 国产三级精品三级在线观看国产| 国内精品99| 精品国产一区二区三区性色av| 麻豆久久精品| 91精品一区国产高清在线gif| 国产精品调教视频| 蜜臀久久99精品久久久久久9| 中文字幕在线免费观看视频| 欧美亚洲一区二区三区| 蜜桃av一区| 日韩精品91| 国产乱子精品一区二区在线观看| 亚洲激情另类| 久久精品青草| 大香伊人久久精品一区二区| 日韩精品a在线观看91| 国产日韩综合| 亚洲视频综合| 麻豆mv在线观看| 美女视频网站久久| 欧美一级网址| 蜜桃一区二区三区在线观看| 日韩欧美一区二区三区免费观看| 久久影院资源站| 欧美亚洲网站| 蜜桃视频免费观看一区| 99久久99久久精品国产片果冰| 开心激情综合| 欧美日韩中文| 一区二区三区国产在线| 婷婷综合激情| 久久国产小视频| 中文字幕在线高清| 精品一区二区三区亚洲| 欧美一级网址| 日韩三级久久| 综合国产在线| 亚洲午夜久久| 蜜桃av一区二区三区电影| 欧美精选一区二区三区| 日韩欧美一区免费| 成人午夜网址| 高清久久一区| 中文字幕一区久| 四虎国产精品免费观看| 美女尤物国产一区| 欧美极品中文字幕| 欧美激情五月| 精品一区二区三区中文字幕在线| 国产欧美一区二区精品久久久 | 亚洲午夜一级| 久久黄色影院| 久久久久99| 欧美一区二区三区高清视频| 久久久五月天| 亚洲国产综合在线看不卡| 久久精品国产大片免费观看| 欧美日韩一二三四| 免费av一区| 国产精品免费看| 亚洲女人av| 亚洲精品日本| 国产亚洲精品精品国产亚洲综合 | 国内精品麻豆美女在线播放视频| 久久99精品久久久野外观看| 麻豆精品视频在线观看| 国模大尺度视频一区二区| 四虎成人av| 亚洲福利专区| 亚洲尤物在线| 日本综合视频| 欧美亚洲自偷自偷| 久久精品国产久精国产爱| 91亚洲国产成人久久精品| 久久久水蜜桃av免费网站| 午夜国产精品视频| 日韩专区一卡二卡| 日韩精品1区2区3区| 国产精品午夜一区二区三区| 红杏一区二区三区| 久久久影院免费| 亚洲久久在线| 精品一区二区三区四区五区| 国产麻豆久久| 水蜜桃久久夜色精品一区的特点| 日韩精品欧美成人高清一区二区| 国产伦精品一区二区三区在线播放 | 日本在线视频一区二区| 国产精品sss在线观看av| 国际精品欧美精品| 久久久夜夜夜| 美女网站久久| 国产精品成人一区二区网站软件| 欧美好骚综合网| 日韩一级欧洲| 91国内精品| 日本美女一区| 亚洲精品高潮| 国产精品成人a在线观看| 欧美日韩国产亚洲一区| 欧美天堂一区| www成人在线视频| 最新国产精品| 国产精品久久观看| 国产精品日韩欧美一区| 青青伊人久久| 亚洲美女久久精品| 亚洲综合专区| а√天堂中文在线资源8| 91久久久久| 久久超级碰碰| 在线视频日韩| 精品国产18久久久久久二百| 亚洲作爱视频| 久久女人天堂| 久久亚洲不卡| 91亚洲自偷观看高清| 蜜桃视频免费观看一区| 四虎成人av| 天堂va欧美ⅴa亚洲va一国产| 久久精品系列| 视频一区中文字幕国产| 91视频精品| 色综合视频一区二区三区日韩| 国产美女高潮在线| 日韩精品欧美大片| 久久九九99| 国产精品亚洲欧美日韩一区在线| 亚洲国内精品| 国产福利资源一区| 日韩专区欧美专区| 裤袜国产欧美精品一区| 日本一区二区中文字幕| 国产国产精品|