1.1 什麼是資料結構
1.2 基本概念和術語
資料(data)是對客觀事物的符號表示,在電腦科學中是指所有能輸入到計算機中並被電腦程式處理的符號的總稱。
資料元素(data element)是資料的基本單位,在電腦程式中通常作為乙個整體進行考慮和處理。
資料物件(data object)是性質相同的資料元素的集合,是資料的乙個子集。
資料結構(data structure)是相互之間存在一種或多種特定關係的資料元素的集合。
資料元素之間的相互關係稱為結構(structure),通常有4類基本結構:
(1) 集合:結構中的資料元素之間處理「同屬於乙個集合」的關係外,別無其他關係;
(2) 線性結構:結構中的資料元素之間存在乙個對乙個的關係;
(3) 樹形結構:結構中的資料元素之間存在乙個對多個的關係;
(4) 圖狀結構或網狀結構:結構中的資料元素之間存在多個對多個的關係。
資料結構在計算機中的表示(又稱映像)稱為資料的物理結構,又稱儲存結構。
抽象資料型別(abstract data type,簡稱adt)是指乙個數學模型以及定義在該模型上的一組操作。
抽象資料型別的定義由乙個值域和定義在該值域上的一組操作組成。若按其值的不同特性,可細分為下列三種型別:
多形資料型別(polymorphic data type)是指其值的成分不確定的資料型別。
1.3 抽象資料型別的表示和實現
抽象資料型別可通過固有資料型別來表示和實現,即利用處理器中已存在的資料型別來說明新的結構,用已經實現的操作來組合新的操作。
1.4 演算法和演算法分析
1.4.1 演算法
演算法(algorithm)是對特定問題求解步驟的一種描述,它是指令的有限序列,其中每一條指令表示乙個或多個操作;此外,乙個演算法還具有下列5個重要特性:
(1)有窮性乙個演算法必須總是(對任何合法的輸入值)在執行有窮步之後結束,且每一步都可在有窮時間內完成。
(2)確定性演算法中每一條指令必須由確切的含義,讀者理解時不會產生二義性。
(3)可行性乙個演算法是能行的,即演算法中描述的操作都是可以通過已經實現的基本運算執行的有限次來實現的。
(4)輸入乙個演算法有零個或多個的輸入,這些輸入取自於某個特定的物件的集合。
(5)輸出乙個演算法有乙個或多個的輸出,這些輸出是同輸入有著某些特定的關係的量。
1.4.2 演算法設計的要求
通常設計乙個「好」的演算法應考慮達到以下目標:
(1) 正確性(correctness)
(2) 可讀性(readability)
(3) 健壯性(robutnes)
(4) 效率與低儲存量需求
1.4.3 演算法效率的度量
度量乙個程式的執行時間通常有兩種方法:
(1) 事後統計的方法
(2) 事前分析估算的方法
1.4.4 演算法的儲存空間需求
資料結構 C 語言版 第1章 緒論 2
1.3 數學預備知識 集合 set 是由一些確定的,彼此不同的成員 member 或者元素 element 構成的乙個整體。成員取自乙個更大的範圍,稱為基型別 base type 集合中成員的個數稱為集合的基數 cardinality 集合的特性 1 確定性 任何乙個物件都能被確切地判斷是集合中的元...
資料結構(C語言版)第2版 第一章 緒論
1.2 使用c語言描述資料結構 1.3 演算法和演算法設計 1.4 演算法分析與度量 2 資料元素 資料的基本單位是資料元素,他是計算機處理或訪問的基本單位。例如 乙個考生名冊中的每乙個學生的記錄,乙個字串中的每乙個字元 乙個陣列的每乙個陣列成分都是資料元素。不同場合資料元素可以有別名,如元素 記錄...
資料結構 C 1 第 1 章 緒論
1.1.1 氣泡排序 時間複雜度,用大o記號 t n o n2 t n o n 2 t n o n2 void bubblesort1a n 1.1.2 演算法 演算法是指基於特定的計算模型,旨在解決某一資訊處理問題而設計的乙個指令序列。演算法應該具備 輸入與輸出,基本操作 確定性與可行性,難解性,...