位元詩人 [資料結構] 使用 C 語言

本系列文章講解一系列基礎資料結構,並以現代 C 語言來實作。

我們會逐步將虛擬碼的部分移除,僅保留 C 的部分。因為虛擬碼不是程式語言,沒有一致的標準,本文先前所列的虛擬碼也不是標準。此外,虛擬碼無法用編譯器或直譯器檢查,不易覺察自己有沒有寫錯。

[資料結構] 使用 C 語言:實作有序串列 (Ordered List)

有序串列是串列的變體,和一般串列主要的差異在於放入元素時會自動將元素排序。 繼續閱讀

[資料結構] 使用 C 語言:實作動態陣列 (Dynamic Array)

動態陣列 (dynamic array) 和鏈結串列 (linked list) 的抽象資料結構大抵上相同,但其差異在於內部實作。因實作方式的差異會造成兩者在演算法上的效率有別。 繼續閱讀

[資料結構] 使用 C 語言:建立數學向量 (Vector)

本文的向量是指在數學上的向量。現在已經有許多程式語言,像是 MATLAB 或 R,支援這類運算;此處的重點是了解其原理,而非重造輪子來用。 繼續閱讀

[資料結構] 使用 C 語言:建立線性代數所使用的二維矩陣 (Matrix)

二維矩陣是線性代數中基本的組成單位。現在有許多程式語言或函式庫,像是 MATLAB 或 R 等,都內建矩陣運算的功能;因此,本範例程式重點在於學習矩陣的原理,而非重造輪子來用。 繼續閱讀

[資料結構] C 語言實作:稀疏矩陣 (Sparse Matrix),使用陣列 (Array)

在矩陣零值所占比率夠高時,稀疏矩陣在空間上會比傳統矩陣來得節省。本文會展示以陣列實作稀疏矩陣的方式。 繼續閱讀

[資料結構] 使用 C 語言:稀疏矩陣 (Sparse Matrix),使用串列的串列 (List of List)

在矩陣零值所占比率夠高時,稀疏矩陣在空間上會比傳統矩陣來得節省。本範例程式會展示使用串列的串列來實作的稀疏矩陣。 繼續閱讀

[資料結構] 使用 C 語言:二元搜尋樹 (Binary Search Tree)

在初階的資料結構教材中,不會對二元搜尋樹進行平衡的動作,這樣的樹實用性偏低,但易於實作,會拿來做為樹的第一個實例。本文會實做一個未平衡的二元搜尋樹。 繼續閱讀