雖然曾修習過資料結構相關課程,但當時對許多概念的理解還不夠深入,因此希望藉由這次鐵人賽重新學習與整理。
本系列將從常見的資料結構開始,包括 Array、Linked List、Stack、Queue、Hash Table、Tree、Heap、Graph 等主題,重新理解各種資料結構的核心概念、特性、使用情境,以及時間複雜度等相關知識。
希望透過 30 天的整理與複習,不只是重新記住內容,而是能真正理解資料結構背後的思考方式,並建立更扎實的程式設計基礎。
程式、演算法與資料結構 剛開始接觸資料結構時,可以先記住一句話:**「程式是由演算法和資料結構組成的。」**這句話看起來有點抽象,其實意思很簡單。演算法負責決定...
假設今天有兩支程式都能算出正確答案:第一支程式按下執行後馬上顯示結果,第二支程式卻慢到可以先去泡一碗泡麵,回來後電腦還差點因為記憶體不足而當機。它們的答案雖然一...
陣列(Array)是程式設計中最基礎、最常見的資料結構之一。它可以把多筆相同資料型別的資料依序存放在一起,並替每個元素編上索引,讓我們能快速地存取與管理資料。...
上一篇已經學會如何宣告陣列、使用索引存取元素,並搭配迴圈處理全部資料。這一篇要繼續往下理解:陣列為什麼能透過索引快速找到元素?陣列名稱又為什麼和指標有關? 這些...
上一篇看到,陣列元素會連續存放在記憶體中。這個特性讓電腦可以透過索引直接找到指定元素,但也帶來一個限制:如果要在陣列中間插入或刪除資料,其他元素就可能必須跟著「...
C 的字串與 char 陣列 前幾天我們用陣列存放一串數字。那麼,一串文字又是怎麼存的呢?在 C 語言中,字串(string)可以放在 char 陣列裡,最後用...
前幾天學習陣列的插入與刪除時,我們發現一個麻煩:只要在中間加入或拿掉一筆資料,後面的元素通常都要跟著搬動。如果資料很多,搬動的成本也會增加。那麼,有沒有一種方法...
上一篇認識了單向鏈結串列的結構:每個節點保存資料,並用 next 指向下一個節點。這一篇要練習三個基本操作:走訪、插入與刪除。 假設目前有一條串列: head...