iT邦幫忙

鐵人檔案

第 11 屆 iThome 鐵人賽
回列表
Software Development

使用JavaScript學習資料結構與演算法 系列

作為一名明年就要畢業的大四生,我想將自己大二時學過的資料結構和常見演算法用JavaScript實作一次,像是連結串列、堆疊、佇列、排序還有河內塔、八皇后等問題。
透過這些練習提升自己的程式能力和文章的論述能力,並讓看我文章的人們有所收穫。

鐵人鍊成 | 共 30 篇文章 | 59 人訂閱 訂閱系列文 RSS系列文
DAY 1

Day1-來介紹一下資料結構和演算法吧!

在開始用JavaScript實作各種資料結構前,總要先了解什麼是資料結構吧,才會知道之後學習的鏈結串列/堆疊/佇列是什麼東西啊~那廢話不多說,我們就開始吧! 資...

2019-09-15 ‧ 由 harry xie 分享
DAY 2

Day2-陣列操作常用的20個函式

這次的文章可以說是JavaScript中,陣列相關操作函式大全了,總共有20個函式,就請準備筆記本好好記錄下吧! 1. 合併陣列 - concat() 其實字串...

2019-09-16 ‧ 由 harry xie 分享
DAY 3

Day3-二維陣列與數地雷應用

這次要來介紹的是二維陣列,二維陣列就是陣列裡面的元素也是陣列的一種資料結構舉個例子來說: const group = [ ['172', '156', '1...

2019-09-17 ‧ 由 harry xie 分享
DAY 4

Day4-來了解鏈結串列(Linked List)並實作它吧!

Linked List 鏈結串列是一種常見且基礎的資料結構,我們可以基於 Linked List 去建立 Queue、Stack 等資料結構。 Linked...

2019-09-18 ‧ 由 harry xie 分享
DAY 5

Day5-陣列(Array)和鏈結串列(Linked List)的比較

在學習完陣列和鏈結串列之後呢,我們來把它們做統整比較吧!不過首先要先介紹一個網站,裡面整理了各式資料結構的時間複雜度並整理成表格。網站連結如下: https:/...

2019-09-19 ‧ 由 harry xie 分享
DAY 6

Day6-來了解堆疊並實作它吧!

今天要來介紹的資料結構是堆疊。我們可以用一疊書來做比喻堆疊,最一開始被放在桌上的書會被壓在最下面,而最後被放在書堆的書本則在書堆最上面。而當要拿書離開時,不能從...

2019-09-20 ‧ 由 harry xie 分享
DAY 7

Day7-利用堆疊解決"平衡括號"問題

這次我們要用昨天學到的堆疊來解決以下問題: 括號分為以下三種: () [] {}假如一個字串的括號都有與開口(包括: ( [ { )對應的閉合符號(包括: )...

2019-09-21 ‧ 由 harry xie 分享
DAY 8

Day8-來了解佇列並實作它吧!

佇列其資料結構用圖片來說明大概如下: 資料以一列的方式儲存每個資料,而且刪除節點時會從最前面也是最早加入佇列的資料開始刪除,新增節點從佇列尾巴開始刪除。此為佇列...

2019-09-22 ‧ 由 harry xie 分享
DAY 9

Day9-使用佇列實作質數篩選

這次我們要用昨天學到的佇列搭配一個叫做埃拉托斯特尼篩法的東西去找出一定範圍的質數。 埃拉托斯特尼篩法的維基百科介紹:https://zh.wikipedia.o...

2019-09-23 ‧ 由 harry xie 分享
DAY 10

Day10-來介紹遞迴(Recursion)吧!

遞迴種類 遞迴分為直接遞迴和間接遞迴兩種:直接遞迴: 直接在函式內再次呼叫本身函式 function fn1() { fn1(); } 間接遞迴: 函...

2019-09-24 ‧ 由 harry xie 分享