有序串列是串列的變體,和一般串列主要的差異在於放入元素時會自動將元素排序。 繼續閱讀
本系列文章講解一系列基礎資料結構,並以現代 C 語言來實作。
我們會逐步將虛擬碼的部分移除,僅保留 C 的部分。因為虛擬碼不是程式語言,沒有一致的標準,本文先前所列的虛擬碼也不是標準。此外,虛擬碼無法用編譯器或直譯器檢查,不易覺察自己有沒有寫錯。
動態陣列 (dynamic array) 和鏈結串列 (linked list) 的抽象資料結構大抵上相同,但其差異在於內部實作。因實作方式的差異會造成兩者在演算法上的效率有別。 繼續閱讀
本文的向量是指在數學上的向量。現在已經有許多程式語言,像是 MATLAB 或 R,支援這類運算;此處的重點是了解其原理,而非重造輪子來用。 繼續閱讀
二維矩陣是線性代數中基本的組成單位。現在有許多程式語言或函式庫,像是 MATLAB 或 R 等,都內建矩陣運算的功能;因此,本範例程式重點在於學習矩陣的原理,而非重造輪子來用。 繼續閱讀
在矩陣零值所占比率夠高時,稀疏矩陣在空間上會比傳統矩陣來得節省。本文會展示以陣列實作稀疏矩陣的方式。 繼續閱讀
在矩陣零值所占比率夠高時,稀疏矩陣在空間上會比傳統矩陣來得節省。本範例程式會展示使用串列的串列來實作的稀疏矩陣。 繼續閱讀
在初階的資料結構教材中,不會對二元搜尋樹進行平衡的動作,這樣的樹實用性偏低,但易於實作,會拿來做為樹的第一個實例。本文會實做一個未平衡的二元搜尋樹。 繼續閱讀