鏈表是最簡單的動態數據結構,數據存儲在節點(Node)中,其節點的數據結構如下:
class Node{ E e;//數據存儲的地方 Node next;//也是一個節點,他指向當前節點的下一個節點 }
我們可以把鏈表理解成為一個火車,每個鏈表,其實就是一節車廂,數據存儲在車廂中中,而每個火車節都有一個指針,連接着下一個火車節。
鏈表有一個優點:
真正的動態數據結構,無需關系創建的空間是否過大,不需要像數據一樣擔心容量的問題。
缺點:
不能像數組那樣,給一個索引就能查找到指定的值。
鏈表和數組的對比:

鏈表的簡單數據結構:
public class LinkdList<E>{ private class Node{ public E e; //data數據 public Node next; //指向下一節點的指針 } //鏈表的頭部 private Node head; //節點的長度 private int size; //有參無參構造方法 public Node(E e, Node next){ this.e = e; this.next = next; } public Node(E e){ this(e, null); } public Node(){ this(null, null); } }
其中dade也就是存儲數據的地方,而Node也是一個節點,他指向着下一節點的Node,而頭指針永遠都是指向第一個有效的數據節點,不管鏈表是否為空,頭指針均不為空,頭節點是為了操作方便而設立的,放在第一個有效數據之前,沒有什么意義,一般都是存放鏈表的長度,頭結點不一定是鏈表的必要元素。
而最后一個節點的Node指向的則是空。
下面是我自己畫的簡單結構圖:(也就是單向鏈表)




