Last Updated on 2021-08-02 by Clay
資料結構(Data Structure)和演算法(Algorithm)向來都是程式設計師的基本功。其中,資料結構是程式設計中相當核心的一種對資料的觀念。
為什麼要學習資料結構(Data Structure)?
學習資料結構,能夠帶給我們(程式設計師)什麼樣的好處呢?
我們不妨想像下列的情境:現在我們手上有 A 程式以及 B 程式,不論 A 或 B 都可以解決我們的問題。
那我們會使用哪個程式呢?當然是執行比較快的程式!
而學習資料結構的目的也就體現於此。我們都希望能夠替我們程式進行優化,使其計算步驟減少、記憶體使用率減少、更快速地解決我們的問題。
但目前的計算機架構中,並不存在著一種萬用的資料結構,能夠在任何時候都派上用場;更多地,是我們需要評估執行情境,來謹慎選擇我們所要使用的資料結構。
這就是我們為什麼要學習資料結構的原因。
資料結構的最基本介紹
資料結構可以分成兩大種類:
1. 原生資料型態(Built-in Data Type)
2. 派生資料型態(Derived Data Type)
原生資料型態(Built-in Data Type)
大部分的程式語言都有提供的資料型態,比方說:
- 整數(Integers)
- 布林值(Boolean: true & false)
- 浮點數(Floating)
- 字元或字串(Character and String)
派生資料型態(Derived Data Type)
需要獨立實現(implementation)的儲存資料的結構,比方說我最上頭所製作的圖片中所繪製的:
- 陣列(Array)
- 鏈結串列(Linked List)
- 堆疊(Stack) <= 中國的朋友們稱呼為『栈』
- 堆棧(Heap) <= 中國的朋友們稱呼為『堆』
- 佇列(Queue)
- 樹(Tree)
- 圖(Graph)
資料結構的基本操作
- 遍歷(Traversing)
- 搜尋(Searching)
- 插入(Insertion)
- 刪除(Deletion)
- 排序(Sorting)
- 合併(Merge)
以上是資料結構的基本筆記,要打比方的話就是第一堂課教授會寫在黑板上的東西。下面我就開始仔細紀錄不同的資料結構有什麼樣的特性、該如何建立及操作吧。