Skip to content

[Data Structure] 基本概念

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)


以上是資料結構的基本筆記,要打比方的話就是第一堂課教授會寫在黑板上的東西。下面我就開始仔細紀錄不同的資料結構有什麼樣的特性、該如何建立及操作吧。


References


Read More

Leave a Reply取消回覆

Exit mobile version