一、什麼是鏈表(Linked List)
之前的動態數組、棧、隊列的底層依託靜態數組,靠resize解決固定容量問題
- 1、正的一種最簡單的動態數據結構
- 2、更深入的理解引用(或者指針)
- 3、更深入的理解遞歸
- 4、輔助組成其他數據結構
- 5、數據存儲在節點(Node)中
class Node { E e; Node next; }
- a、優點:真正的動態,不需要處理固定容量的問題
- b、缺點:喪失了隨機訪問的能力
二、在鏈表中添加元素
- 1、在鏈表頭部添加元素
// head表示頭部第一個元素,新元素node
Node node = new Node(e)
node.next = head
head = node
// 另外一種寫法
head = new Node(e, head)
-
2、在鏈表中間添加元素
- a、先找到prev
Node prev = head; for(int i = 0; i < index -1; i++) { prev = prev.next; }
- b、插入元素
// 插入第一種寫法 Node node = new Node(e); node.next = prev.next; prev.next = node; // 另外一種寫法 prev.next = new Node(e, prev.next)
- a、先找到prev
-
3、爲鏈表設立虛擬頭結點