iT邦幫忙

鐵人檔案

2026 iThome 鐵人賽
回列表
Software Development

30 天資料結構修行:從零開始理解資料結構 系列

雖然曾修習過資料結構相關課程,但當時對許多概念的理解還不夠深入,因此希望藉由這次鐵人賽重新學習與整理。

本系列將從常見的資料結構開始,包括 Array、Linked List、Stack、Queue、Hash Table、Tree、Heap、Graph 等主題,重新理解各種資料結構的核心概念、特性、使用情境,以及時間複雜度等相關知識。

希望透過 30 天的整理與複習,不只是重新記住內容,而是能真正理解資料結構背後的思考方式,並建立更扎實的程式設計基礎。

參賽天數 29 天 | 共 29 篇文章 | 1 人訂閱 訂閱系列文 RSS系列文
DAY 11

Day 11|排隊輪到誰?佇列與環狀佇列

想像大家排隊買票:先到的人先買,後來的人排到隊伍最後面。資料結構裡的**佇列(queue)**也是這樣運作:先放進去的資料,會先被取出來。這剛好和上一篇的堆疊相...

2026-09-25 ‧ 由 HSIUN 分享
DAY 12

Day 12|用指標把資料串起來:鏈結式堆疊與佇列

陣列版的堆疊和佇列會先準備一段連續空間,資料放進預留的位置。今天改用鏈結串列:每筆資料各自放在一個節點裡,再用指標把節點接起來。這種做法不必一開始決定固定容量,...

2026-09-26 ‧ 由 HSIUN 分享
DAY 13

Day 13 從家族系譜認識樹與表示法

Day 13|從家族系譜認識樹與表示法 家族系譜常用一層一層分支的圖,表示世代之間的關係。資料結構中的**樹(tree)**也用這種方式呈現資料:從一個起點往下...

2026-09-27 ‧ 由 HSIUN 分享
DAY 14

Day 14 從迷宮岔路認識二元樹

想像你正在闖一座迷宮:每到一個路口,最多只能選左邊或右邊。有些路口兩條路都通,有些只開一邊,走到盡頭就沒有下一個路口。把路口當成節點、路線當成連結,這種每個節點...

2026-09-28 ‧ 由 HSIUN 分享
DAY 15

Day 15 走一遍才知道:二元樹的走訪

上一篇用陣列和鏈結把二元樹建立起來了,但要怎麼確定 A 的左邊真的接到 B、B 的右邊真的接到 D,而沒有接錯位置?最直接的檢查方法,就是從根節點出發,把樹裡的...

2026-09-29 ‧ 由 HSIUN 分享
DAY 16

Day 16 從走訪結果還原二元樹,再認識二元運算樹

上一篇最後提到:如果我們只看一種走訪結果,通常無法確定一棵二元樹長什麼樣子。那反過來問,如果手上有兩種走訪結果,能不能把原本的樹畫回來?如果節點資料不重複,選用...

2026-09-30 ‧ 由 HSIUN 分享
DAY 17

Day 17 把空指標拿來用:引線二元樹

Day 15 用遞迴寫出了前序、中序、後序三種走訪,程式很短也很直觀。但遞迴看起來簡單,背後其實是程式偷偷幫我們記住「走完左子樹之後要回到哪一個節點」:每往下走...

2026-10-01 ‧ 由 HSIUN 分享
DAY 18

Day 18 森林轉二元樹

從 Day 14 開始,我們一路都在處理二元樹:怎麼建立、怎麼走訪、怎麼把空指標拿來當引線。二元樹好處理,是因為每個節點最多只有左、右兩個子節點,用兩個指標就能...

2026-10-02 ‧ 由 HSIUN 分享
DAY 19

Day 19 VIP 先請:用累堆實作優先權佇列

前幾天我們認識了樹和二元樹的基本功:專有名詞、建立方式、走訪、引線二元樹,以及把森林轉成二元樹。從今天開始,要把這些基礎拿來應用。第一個應用是累堆(heap,也...

2026-10-03 ‧ 由 HSIUN 分享
DAY 20

Day 20 左小右大:二元搜尋樹

想像一個猜數字遊戲:對方心裡想了 1 到 100 之間的整數,每猜一次,只會回答「太大」或「太小」。聰明的猜法是先猜 50:如果對方說「太大」,代表答案在 1...

2026-10-04 ‧ 由 HSIUN 分享