1. 程式人生 > >利用java實現一個簡單的連結串列結構

利用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 current;
    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){
    System.out.print(this.current.getValue());
    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等多個知識點的架構資料)合理利用自己每一分每一秒的時間來學習提升自己,不要再用"沒有時間“來掩飾自己思想上的懶惰!趁年輕,使勁拼,給未來的自己一個交代!