Skip to main content

4 posts tagged with "Data Structure and Algorithm"

Data Structure and Algorithm

View All Tags

搶過演唱會門票的就懂~來看好用的 Stacks & Queues!

· 4 min read
Claudia Teng
Claudia Teng
Author

此篇為 Udemy - Master the Coding Interview: Data Structures + Algorithms 課程筆記。

本篇要來介紹的是 Stacks 和 Queues,這兩個資料結構是比較高層級的資料結構,可以用 Array 或 Linked List 實作出來。

既然可以用 Array 或 Linked List,那為什麼需要像這樣的資料結構呢?原因是 Stacks 和 Queues 可以限制我們使用資料的方式,你只能取得第一個或最後一個,中間的順序一定不會被動到!以下就會示範 Stacks 和 Queues 的特性。

JavaScript 沒有 Linked List?那就自己做一個吧!

· 5 min read
Claudia Teng
Claudia Teng
Author

此篇為 Udemy - Master the Coding Interview: Data Structures + Algorithms 課程筆記。

這篇要來介紹的是 Linked List,在 JavaScript 當中沒有原生的 Linked List 資料結構。初次學習的時候會覺得,為什麼還要多一種資料結構?不是用 Array 就好了嗎?仔細了解才發現 Linked List 的優點在哪裡。

之前在介紹 Array 的時候有提到,Array 在記憶體的儲存方式,是一個空位放一個值,如果在 Array 中新增一個值,一般來說是 O(1)。

但如果在記憶體中,他的後面一格剛好不是空的,這時候就要把整個 Array 搬去記憶體的另一塊空地,造成 Big O 可能是 O(n) 的狀況。

蘿蔔與坑 —— JavaScript 的 Hash Table 是什麼?

· 7 min read
Claudia Teng
Claudia Teng
Author

此篇為 Udemy - Master the Coding Interview: Data Structures + Algorithms 課程筆記。

上篇介紹了如何用 JavaScript 的 Object,實作 Array 的資料結構,這篇則要來解釋 JavaScript 最核心的概念——物件(Object)。

講到 JavaScript 當中的物件,你可能會想到的是像以下的資料結構:

let user = {
id: 1,
name: "John Doe",
age: 20,
};

由此可以看出 Object 是由key: value組成,那在 RAM 當中,他又是怎麼被儲存的?這時我們必須要了解 Hash Tables 的資料結構。

用 JavaScript 實作 Array 資料結構

· 4 min read
Claudia Teng
Claudia Teng
Author

此篇為 Udemy - Master the Coding Interview: Data Structures + Algorithms 課程筆記。

首篇 Data Structure 想要介紹的是 Array,在 JavaScript 當中,因為已經有內建的 Array 資料結構,因此平常已經習慣let array = [];這種寫法。

不過 JavaScript 的 Array 其實也是從 Object 衍生而來,如果今天在 console 輸入typof [],你會得到'object'的答案,原因是在 JavaScript 中,Array 算是特別的 Object。

Array 資料結構其實也能透過 JavaScript 自己實作,以下將會示範怎麼透過 Object 來實作 Array,以及自己寫出一些常見的 Array Method。

接下來就一起來實作吧!