Linked List
Linked List 是一種資料結構。
Linked List 是一種有順序的集合,裡面有許多節點(node),第一個 node 連接第二個 node,第二個 node 連結第三個 node...
節點的順序是無法改變的。每個 node 裡面都會有兩個屬性:
- 一個自己的資料
- 下個節點的參考(會指向下一個節點)
如圖所示
實作 node 說明
因 Java 本身就有 LinkedList
物件可以使用,所以本篇注重於 JavaScript 實作 Linked List。
Java LinkedList
詳細可以使用的方法請見 Oracle 官網 Java API。
我們也可以根據官網來看看 Java 裡面的 LinkedList 有哪些方法以及特性,更了解此資料結構。
JavaScript 實作 node
期望效果
const node1 = new Node("ya");
node1.data; // 期望回傳 ya
node1.next; // 期望回傳 null
const node2 = new node("cool", node1);
node2.data; // 期望回傳 cool
node2.next; // 期望回傳 node1 也就是 ya
來實作
class Node {
constructor(data, next = null) {
this.data = data;
this.next = next;
}
}
說明,每當 Node 被呼叫,會把丟進去的第一個引數設為 data,
有第二個引數進去的話則 next 為該丟進去的引數。沒有第二個丟進去的引數預設為 null。
補充 Node 其他特性
Linked List 有兩個特別的節點: Head node , Tail node。
Head node 是第一個 node。
Tail node 的特色是參考到的會是 Null(因為最後了)。
本文同時發布於鐵人賽