這篇文章主要介紹java中鏈表的實例,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!
LinkedList使用了循環(huán)雙向鏈表數(shù)據(jù)結(jié)構(gòu)。與基于數(shù)組ArrayList相比,這是兩種截然不同的實現(xiàn)技術(shù),這也決定了它們將適用于完全不同的工作場景。
鏈表(Linked list)是一種常見的基礎(chǔ)數(shù)據(jù)結(jié)構(gòu),是一種線性表,但是并不會按線性的順序存儲數(shù)據(jù),而是在每一個節(jié)點里存到下一個節(jié)點的指針(Pointer)。
使用鏈表結(jié)構(gòu)可以克服數(shù)組鏈表需要預(yù)先知道數(shù)據(jù)大小的缺點,鏈表結(jié)構(gòu)可以充分利用計算機內(nèi)存空間,實現(xiàn)靈活的內(nèi)存動態(tài)管理。但是鏈表失去了數(shù)組隨機讀取的優(yōu)點,同時鏈表由于增加了結(jié)點的指針域,空間開銷比較大。
實例:
package com.ys.link; public class DoublePointLinkedList { private Node head;//頭節(jié)點 private Node tail;//尾節(jié)點 private int size;//節(jié)點的個數(shù) private class Node{ private Object data; private Node next; public Node(Object data){ this.data = data; } } public DoublePointLinkedList(){ size = 0; head = null; tail = null; } //鏈表頭新增節(jié)點 public void addHead(Object data){ Node node = new Node(data); if(size == 0){//如果鏈表為空,那么頭節(jié)點和尾節(jié)點都是該新增節(jié)點 head = node; tail = node; size++; }else{ node.next = head; head = node; size++; } } //鏈表尾新增節(jié)點 public void addTail(Object data){ Node node = new Node(data); if(size == 0){//如果鏈表為空,那么頭節(jié)點和尾節(jié)點都是該新增節(jié)點 head = node; tail = node; size++; }else{ tail.next = node; tail = node; size++; } } //刪除頭部節(jié)點,成功返回true,失敗返回false public boolean deleteHead(){ if(size == 0){//當(dāng)前鏈表節(jié)點數(shù)為0 return false; } if(head.next == null){//當(dāng)前鏈表節(jié)點數(shù)為1 head = null; tail = null; }else{ head = head.next; } size--; return true; } //判斷是否為空 public boolean isEmpty(){ return (size ==0); } //獲得鏈表的節(jié)點個數(shù) public int getSize(){ return size; } //顯示節(jié)點信息 public void display(){ if(size >0){ Node node = head; int tempSize = size; if(tempSize == 1){//當(dāng)前鏈表只有一個節(jié)點 System.out.println("["+node.data+"]"); return; } while(tempSize>0){ if(node.equals(head)){ System.out.print("["+node.data+"->"); }else if(node.next == null){ System.out.print(node.data+"]"); }else{ System.out.print(node.data+"->"); } node = node.next; tempSize--; } System.out.println(); }else{//如果鏈表一個節(jié)點都沒有,直接打印[] System.out.println("[]"); } } }
以上是java中鏈表的實例的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
網(wǎng)站題目:java中鏈表的實例-創(chuàng)新互聯(lián)
文章路徑:http://chinadenli.net/article0/dgpioo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、面包屑導(dǎo)航、搜索引擎優(yōu)化、用戶體驗、網(wǎng)站排名、網(wǎng)站設(shè)計公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容