[用JS來寫演算法和了解資料結構] Day7 Data Structures - Linked-list 鏈結串列

[用JS來寫演算法和了解資料結構] Day7 Data Structures - Linked-list 鏈結串列

Linked-list 鏈結串列

鏈結串列是一種常見的基礎資料結構,是一種線性序列,但是並不會按線性的順序儲存資料,而是在每一個節點裡存到下一個節點的指標。
生活例子類似火車,節點Node,像是車廂

由於不必須按順序儲存,鏈結串列在插入的時候可以達到O(1)的複雜度,但是尋找一個節點或者存取特定編號的節點則需要O(n)的時間

Operations on Linked-list

  1. Insert - O(n) Append - O(1) Prepend - O(1)
  2. Access Lookup- O(n)
  3. Search -
  4. Delete - O(n)
Read more
[用JS來寫演算法和了解資料結構] Data Structures - Hash Table - Day6 Map

[用JS來寫演算法和了解資料結構] Data Structures - Hash Table - Day6 Map

Map

The Map object holds key-value pairs and remembers the original insertion order of the keys.

  • MDN MAP

  • elements in an array do not repeat -> use Set

  • elements in an object do not repeat -> use Map
    both have size, has(), and keys().

  • 與Object有點類似,但Map裡面的key是唯一的,重複set會覆蓋舊的value

  • Map的key除了原始型別外,可以是任何值object或function

Read more
[用JS來寫演算法和了解資料結構] Data Structures - Day5 Hash Table - 集合 Set

[用JS來寫演算法和了解資料結構] Data Structures - Day5 Hash Table - 集合 Set

Hash Tables

in javascript object could be represented Hash Tables.

Hash Collision -> 是指不同的輸入經過 Hash 函數計算後,得到了相同的輸出值。相同hash編號內的資料,會透過Linked List的方式串接在一起。

  • Hash Table 常用在儲存使用者的 Email、使用者資料。

Operations on Hash Tables

  1. Insert - O(1)
  2. Access Lookup- O(1)
  3. Search - O(1)
  4. Delete - O(1)

集合 Set

The Set object lets you store unique values of any type, whether primitive values or object references.

  • elements in an array do not repeat -> use Set
  • elements in an object do not repeat -> use Map

both have size, has(), and keys().

Read more
[用JS來寫演算法和了解資料結構] Day4 Data Structures - 陣列 Array - Leetcode #905, #561
[用JS來寫演算法和了解資料結構] Day3 Data Structures - Array 陣列 - 簡易搜索、二分搜索、leetcode #1064
[用JS來寫演算法和了解資料結構] Day2 學習目錄和原始型別
[用JS來寫演算法和了解資料結構] Day1 演算法的好壞評量標準 Big O

[用JS來寫演算法和了解資料結構] Day1 演算法的好壞評量標準 Big O

前言

這個系列主要是想自我挑戰30天用學資料結構和演算法。因為不是資訊本科生,對資料結構的理論一知半解,藉由筆記更加深印象。會搭配一個我很喜歡的前端工程師Hannah分享的鐵人賽文章,來做練習。這邊因為是我個人練習學習,順序或時間可能會跟Hannah的文章不一樣。

Read more
JSDoc - 產生API說明文件
Your browser is out-of-date!

Update your browser to view this website correctly.&npsb;Update my browser now

×