美思 [資料結構] 使用 C 語言

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

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

[資料結構] 使用 C 語言:要學些什麼?

資料結構是在電腦程式中有效率地儲存和使用資料的方法。本文會介紹資料結構要學習的重點項目為何,偏向於概論的性質。 繼續閱讀

[資料結構] 使用 C 語言:如何練習

雖然資料結構是抽象的概念,但我們仍需某種程式語言來實作電腦程式。在本文中,我們以 C 語言為工具,說明練習資料結構的方法 繼續閱讀

[資料結構] 使用 C 語言:以連結串列 (Linked List) 為基礎的堆疊 (Stack)

堆疊 (stack) 是一種受限制的線性 (linear) 資料結構,僅能由單一出入口存取資料,其存取方式為 FILO (First-In, Last-Out)。本文使用 C 語言,以串列來實作堆疊。 繼續閱讀

[資料結構] 使用 C 語言:以陣列 (Array) 為基礎的堆疊 (Stack)

在本文中,我們會實作堆疊,但內部實作不是用這類教材常見的連結串列,而是使用陣列。 繼續閱讀

[資料結構] 使用 C 語言:以連結串列 (Linked List) 為基礎的佇列 (Queue)

佇列 (queue) 是另一種受限制的線性資料結構。其操作方式為從尾端推入,從頭端推出,是一種 FIFO (First-In, First-Out) 的資料結構。本文使用 C 語言,以串列實作佇列。 繼續閱讀

[資料結構] 使用 C 語言:以陣列 (Array) 為基礎的佇列 (Queue)

在本文中,我們會實作佇列,但內部實作不是用這類教材常見的串列,而是使用陣列。 繼續閱讀

[資料結構] 使用 C 語言:基於連結串列 (Linked List) 的雙向佇列 (Deque)

雖然雙向佇列 (deque) 仍為受限制的線性資料結構,比起佇列,雙向佇列比較靈活一些,因為雙向佇列可以同時從頭端或尾端推入或推出資料。本文會以連結串列 (linked list) 實作雙向佇列。 繼續閱讀

[資料結構] 使用 C 語言:以陣列 (Array) 實做雙向佇列 (Deque)

在本文中,我們仍然實作雙向佇列,但內部改以陣列來實作。 繼續閱讀

[資料結構] 使用 C 語言:實作鏈結串列 (Linked List)

鏈結串列是典型的基於節點的資料結構形態,對於練習使用節點相當重要。本文展示使用 C 語言實作的版本。 繼續閱讀

[資料結構] 使用 C 語言:串列走訪 (List Traversal)

本文探討兩個和串列走訪相關的議題,一個是迭代器 (iterator),一個是和串列走訪相關的高階函式 (higher-order function)。 繼續閱讀