Java資料結構之單鏈表

來源:互聯網
上載者:User

標籤:java   資料結構   單鏈表   

鏈表的組成:鏈表頭+結點

? ?鏈表頭一般只儲存下一個節點的引用

? ?節點:存資料+下一個節點的引用

  1. 鏈表頭代碼:

package?com.xingej.algorithm.datastructure.linkedList.singleLinkedList;/**?*?聲明一個鏈表的頭部?*??*?從鏈表頭的使用,聯想到hadoop,spark,netty中都有上下文context?*??*[email protected]?erjun?2017年12月8日?上午8:45:08?*/public?class?LinkList?{????private?Node?first;????public?LinkList()?{????????//?初始鏈表時,指標引用為空白????????first?=?null;????}????public?void?insertFirst(int?iData,?double?dData)?{????????//?建立一個新的鏈節點????????Node?newLink?=?new?Node(iData,?dData);????????//?更新新建立的鏈節點next引用,也就是將頭部引用,賦值給它????????newLink.next?=?first;????????//?更新鏈表頭部的引用,?也就是將新建立的鏈節點的引用,賦值給頭部引用????????first?=?newLink;????}????public?boolean?isEmpty()?{????????return?null?==?first;????}????public?Node?deleteFirst()?{????????//?先緩衝?被刪除的第一個元素????????Node?temp?=?first;????????//?鏈表,這種資料結構裡,刪除元素,只需要更新指標引用就可以了????????//?更新頭部元素的引用????????first?=?first.next;????????return?temp;????}????public?void?displayList()?{????????System.out.println("List?(first--->last):");????????Node?current?=?first;????????while?(null?!=?current)?{????????????current.displayLink();????????????//?擷取下一個元素的引用,?在C語言裡,稱為指標????????????current?=?current.next;????????}????????System.out.println();????}}
  1. 節點代碼:

package?com.xingej.algorithm.datastructure.linkedList.singleLinkedList;/**?*?聲明一個節點?*??*[email protected]?erjun?2017年12月8日?上午8:41:50?*/public?class?Node?{????private?int?iData;????private?double?dData;????//?不是private?哦,不然對象訪問不了????public?Node?next;????public?Node(int?iData,?double?dData)?{????????this.dData?=?dData;????????this.iData?=?iData;????}????public?void?displayLink()?{????????System.out.println("{"?+?iData?+?",?"?+?dData?+?"}");????}}



簡單測試案例:

package?com.xingej.algorithm.datastructure.linkedList.singleLinkedList;import?org.junit.Test;/**?*?單鏈表測試?*??*[email protected]?erjun?2017年12月8日?上午9:00:54?*/public?class?LinkListTest?{[email protected]????public?void?test()?{????????LinkList?list?=?new?LinkList();????????//?很明顯,每次都是插入鏈表的第一個元素????????list.insertFirst(32,?8);????????list.insertFirst(3,?3);????????list.insertFirst(2,?6);????????list.insertFirst(42,?8);????????list.insertFirst(26,?9);????????list.displayList();????}}













Java資料結構之單鏈表

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.