鏈結(Linked List)

鏈結是一種線性連結關係的基礎資料結構,但在記憶體內部不需連續配置。 每個節點通常包含兩部分:資料下一個節點的位置(指標)

鏈結可用「陣列(靜態鏈結)」或「指標(動態鏈結)」兩種方式實作。

陣列寫法(靜態鏈結)

// 4 個資料,第二維 0 = 資料,1 = 下一資料位置
int x[4][2];
x[0][0]=37; x[0][1]=3;  // 資料 37,下一個在索引 3
x[1][0]=29; x[1][1]=2;  // 資料 29,下一個在索引 2
x[2][0]=51; x[2][1]=-1; // 資料 51,-1 表示無下一個
x[3][0]=40; x[3][1]=1;  // 資料 40,下一個在索引 1
靜態鏈結示意圖
靜態鏈結(以陣列模擬指向關係)

指標寫法(動態鏈結)

struct node{
  int data;
  node *next;
  node(int d){ data = d; next = NULL; }
};
node *p = new node(37);
node *q = new node(40);
p->next = q;
q = new node(29);
p->next->next = q;
q = new node(51);
p->next->next->next = q;
動態鏈結示意圖
動態鏈結(以指標串接節點)