第一章 緒論
“資料結構”是介於數學、電腦硬體和電腦軟體三者之間的一門核心課程
資料(data)是對客觀事物的符號表示,在電腦科學中是指所有能輸入到電腦中並被電腦程式處理的符號的總稱。
資料元素(data element)是資料的基本單位,在電腦程式中痛處作為一個整體進行考慮和處理。資料項目是資料的不可分割的最小單位。
資料對象(data object) 是性質相同的資料元素的集合,是資料的一個子集。
資料結構(data structure) 是相互之間存在一種或多種特點關係的資料元素的集合。
基本結構: 集合——結構中的資料元素之間除了“同屬於一個集合”的關係外,別無其他關係;
線性結構——結構中的資料元素之間存在一個對一個的關係;
樹形結構——結構中的資料元素之間存在一個對多個的關係;
圖狀結構或網狀結構——結構中的資料元素之間存在多個對多個的關係。
結構定義中的“關係”描述的是資料元素之間的邏輯關係,稱為資料的邏輯結構;資料結構在電腦中的表示(映像)稱為資料的物理結構,又稱為儲存結構。
一個含有抽象資料類型的軟體模組通常應包含定義、表示和實現3個部分。抽象資料類型的定義由一個範圍和定義在該範圍上的一組操作組成。按其值得不同特性可細分為:
原子類型 atomic data type 屬原子類型的變數的值是不可分解的。
固定彙總類型 fixed-aggregate data type 屬該類型的變數,其值由確定數目的稱為按某種結構組成;
可變彙總類型 variable-aggregate data type 構成可變彙總類型“值”的成分的數目不確定。
抽象資料類型三元組表示:(D, S, P)
ADT抽象資料類型名 {
資料對象:<資料對象的定義>
資料關係:<資料關係的定義>
基本操作:<基本操作的定義>
}
其中資料對象和資料關係的定義用偽碼描述,基本操作的定義格式為
基本操作名(參數表)
初始條件:<初始條件描述>
操作結果:<操作結果描述>
演算法algorithm 是對特定問題求解步驟的一種描述,它是指令的有限序列,其中一條指令表示一個或多個操作;
演算法的重要特性:
有窮性
確定性
可行性
輸入
輸出
演算法設計的要求:
正確性correctness 演算法應當滿足具體問題的要求;
可讀性 readability 演算法主要是為了人的閱讀與交流,其次才是機器執行;
健壯性 robustness
效率與地儲存量需求 效率指的是演算法執行的時間。
演算法效率的度量——時間複雜度
演算法的儲存空間儲存空間需求——空間複雜度space complexity