iT邦幫忙

鐵人檔案

第 11 屆 iThome 鐵人賽
回列表
自我挑戰組

透過JavaScript學習演算法與資料結構 系列

我本身是個半路出家的Node.js後端工程師,在演算法與資料結構上相當陌生,為此,想回過頭來想透過JavaScript打好基本功。

參賽天數 27 天 | 共 30 篇文章 | 29 人訂閱 訂閱系列文 RSS系列文
DAY 21

堆積(Heap)

Heap是一種資料結構,使用一維陣列來儲存資料,可以把它想成Tree的概念。Heap分成兩種,最小堆積(Min-Heap)、最大堆積(Max-Heap)。...

2019-09-22 ‧ 由 kk 分享
DAY 22

字典(Dictionary)

字典是還蠻常見的資料結構,它的{Key:Value}結構讓我們可以很快地對資料做處理。 程式碼如下: class Dictionary{ constru...

2019-09-23 ‧ 由 kk 分享
DAY 23

雜湊表(Hash Table)

Hash Table是蠻高效的資料結構,時間複雜度是O(1),資料經由hash function產出一個固定值作為資料索引值。但有時候hash functio...

2019-09-24 ‧ 由 kk 分享
DAY 24

深度優先搜尋法(Depth Frist Search)

請看下圖的動態呈現。 簡而言之,深度優先搜尋法會先從root節點開始,先由左側的子節點往下找有無子節點,如果有就繼續往下找,如果沒有就回到上一層節點,找尋有無...

2019-09-25 ‧ 由 kk 分享
DAY 25

廣度優先搜尋法(Breadth First Search)

簡而言之,就是遍歷樹的每一層節點,遍歷一層後再往下一層遍歷節點。 程式碼如下: class Tree{ constructor(value){...

2019-09-26 ‧ 由 kk 分享
DAY 26

ES6 Set介紹

ES6中的Set。類似陣列,不過其成員值都是唯一值。 Set是建構函式,透過new的方式產生一個Set的instance。 Set 呼叫 add、has、de...

2019-09-27 ‧ 由 kk 分享
DAY 27

ES6 WeakSet介紹

WeakSet跟Setㄧ樣都是不重複值,可以接受陣列或類似陣列的iterable物件。 WeakSet不能遍歷,其成員是弱引用,隨時可能消失,因為垃圾回收機制...

2019-09-28 ‧ 由 kk 分享
DAY 27

ES6 Map介紹

Map類似物件但提供了一個更有彈性的資料結構,物件的key欄位是字符串格式當key,而Map則是可以用各種類型甚至物件當key欄位。 Map有以下方法與屬性:...

2019-09-30 ‧ 由 kk 分享
DAY 27

ES6 WeakMap介紹

只接受物件作為key欄位,不接受其他类型的值。 WeakMap不能遍歷,其成員是弱引用,隨時可能消失,因為垃圾回收機制可能會因為在WeakSet裡頭的物件沒被...

2019-09-30 ‧ 由 kk 分享
DAY 27

隊列(Queue)

Queue是一個先進先出(First-In-First-Out)模式的資料結構,語意上也十分好懂,就像是在排隊買票一樣,一個一個前進。 實作上array 的...

2019-09-30 ‧ 由 kk 分享