利用java實現一個簡單的鏈表結構
所謂鏈表就是指在某節點存儲數據的過程中還要有一個屬性用來指向下一個鏈表節點,這樣的數據存儲方式叫做鏈表
鏈表優缺點:
優點:易於存儲和刪除
缺點:查詢起來較麻煩
下面我們用java來實現如下鏈表結構:
首先定義節點類:
復制代碼
package LinkTest;
/**
- 鏈表節點類
- @author admin
-
*/
public class Node {
private int value;//存儲數據
private Node next;//下一個節點
/**- 定義構造器
- @param vlaue
- @param value
*/
public Node(int value){
this.value=value;
public int getValue() {
return value;
}
public void setValue(int value) {
this.value = value;
}
public Node getNext() {
return next;
}
public void setNext(Node next) {
this.next = next;
}
}
復制代碼
然後定義一個鏈表類:
- 註意:遍歷鏈表定義了兩個方法,一個是普通方法,一個是遞歸方法,都可以遍歷出來
復制代碼
package LinkTest;
/**
- 鏈表
- @author admin
-
*/
public class Link {
private Node root;
public void insert(int vlaue){
Node newNode=new Node(vlaue);
if(this.current==null){
this.current=newNode;
this.root=this.current;
}else{
this.current.setNext(newNode);
this.current=this.current.getNext();
}
}
//普通遍歷
public void getList(){
this.current=this.root;
while(this.current!=null){
this.current=this.current.getNext();
if(this.current!=null){
System.out.print("------->");
}
}
}//遞歸遍歷
public void getList2(){
DG(this.root);
}//遞歸方法
public void DG(Node node){
System.out.print(node.getValue()+"----->");
if(node.getNext()!=null){
DG(node.getNext());
}else{
return;
}
}
}
復制代碼
測試類:
復制代碼
package LinkTest;
/**
- 測試類
- @author admin
-
*/
public class Test {
public static void main(String[] args){
Link l=new Link();
l.insert(1);
l.insert(4);
l.insert(5);
l.insert(6);
l.insert(9);
l.insert(8);
l.getList();
}
}
復制代碼
測試類運行結果:
1------->4------->5------->6------->9------->8
這樣我們就用java實現了一個簡單的鏈表結構。 歡迎工作一到五年的Java工程師朋友們加入Java群: 891219277
群內提供免費的Java架構學習資料(裏面有高可用、高並發、高性能及分布式、Jvm性能調優、Spring源碼,MyBatis,Netty,Redis,Kafka,Mysql,Zookeeper,Tomcat,Docker,Dubbo,Nginx等多個知識點的架構資料)合理利用自己每一分每一秒的時間來學習提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個交代!
利用java實現一個簡單的鏈表結構