Linked List 是一種資料結構。
本文同時發佈於好讀整理版
因 Linked List 方法很多,我們今天先介紹其中 Node 特性並實作。
Linked List 是一種有順序的集合,裡面有許多節點(node),第一個 node 連接第二個 node,第二個 node 連結第三個 node...
節點(node)的順序是無法改變的。每個 node 裡面都會有兩個屬性:
Linked List 有兩個特別的節點: Head node , Tail node
Head node 是第一個 node。
Tail node 的特色是參考到的會是 Null(因為最後了)。
因 Java 本身就有 LinkedList
物件可以使用,所以本篇注重於 JavaScript 實作 Linked List。
Java LinkedList
詳細可以使用的方法請見 Oracle 官網 Java API
我們也可以根據官網來看看 Java 裡面的 LinkedList 有哪些方法以及特性,更了解此資料結構。
期望效果
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 的其他方法囉!
敬請及待!
本文同時發佈於好讀整理版