iT邦幫忙

第 12 屆 iT 邦幫忙鐵人賽

DAY 15
0
Software Development

One Punch 一拳搞定前後端面試系列 第 15

[One Punch 一拳搞定前後端面試] DAY-15 - LinkedList

Linked List

Linked List 是一種資料結構。

本文同時發佈於好讀整理版
因 Linked List 方法很多,我們今天先介紹其中 Node 特性並實作。

Linked List 是一種有順序的集合,裡面有許多節點(node),第一個 node 連接第二個 node,第二個 node 連結第三個 node...

節點(node)的順序是無法改變的。每個 node 裡面都會有兩個屬性:

  1. 一個自己的資料
  2. 下個節點的參考(會指向下一個節點)

algo-node-img

Linked List 有兩個特別的節點: Head node , Tail node

  1. Head node 是第一個 node。

  2. Tail node 的特色是參考到的會是 Null(因為最後了)。

實作 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 的其他方法囉!

敬請及待!

本文同時發佈於好讀整理版


上一篇
[One Punch 一拳搞定前後端面試] DAY-14 - Stack
下一篇
[One Punch 一拳搞定前後端面試] DAY-16 - LinkedList 建構子與 addFirst
系列文
One Punch 一拳搞定前後端面試30

尚未有邦友留言

立即登入留言