跳轉到

第10章 資料結構的設計思維#

本章目標#

  • 建立一套「依操作模式選擇資料結構」的系統性方法。
  • 理解資料結構與演算法如何互相成就。
  • 透過綜合實戰案例整合全書所學。

章前言#

前九章我們逐一學會了每種結構的原理與實作;最後一章要回答更根本的問題:面對真實問題,怎麼挑?怎麼組合?不夠用時怎麼自己設計?

選擇資料結構不是背表格,而是一段推理:先問「程式的操作模式是什麼」——最頻繁的是查詢、插入、刪除,還是區間統計?資料是否有序需求?規模多大?記憶體有無限制?答案一出,候選結構自然浮現。這個推理過程,比任何「萬用建議」都可靠。

組合也是關鍵。LRU 快取 = 雜湊表 + 雙向串列;Dijkstra = 優先權佇列 + 圖;Kruskal = 排序 + 併查集;資料庫索引 = B+ 樹。複雜系統幾乎都是簡單結構的組合,認出「這個問題需要哪幾種能力的組合」,是從學會到會用的分水嶺。

本章先給出一張「操作模式 → 結構選擇」的決策表與推理流程;再透過「演算法需要什麼資料、資料結構如何反過來啟發演算法」的雙向關係,理解兩者如何共舞;最後用三個完整的實戰案例(高頻詞統計、訂單系統、即時排行榜)做一次全書總複習。願你在合上本書之後,遇到任何效能問題,都能說出「先量測、再定位、後重構」的工程紀律。