之前看的一直是《算法導論》,的確是一本非常非常好的書,看的也非常吃力,看到第三部分 數據結構部分時,對於書中的僞代碼的實現,對我造成了很大的困惑,不知那種實現方式纔是最優的,一時看的雲裏霧裏,所以,看完第三部分,暫時不再繼續看第四部分 高級設計部分了,決定研讀下《大話數據結構》,加深對數據結構的瞭解,同時形成規範的數據結構的實現編程。
1.1 開場白
1.2 你數據結構怎麼學的
1.3 數據結構起源
1.4 基本概念和術語
1.4.1 數據
數據:是描述客觀事物的符號,是計算機中可以操作的對象,是能被計算機識別,並輸入給計算機處理的符號集合。
1.4.2 數據元素
數據元素:是組成數據的、有一定意義的基本單位,在計算機中通常作爲整體處理。也被稱爲記錄。
1.4.3 數據項
數據項:一個數據元素可以由若干個數據項組成。
數據項是數據不可分割的最小單位。
1.4.4 數據對象
數據對象:是性質相同的數據元素的集合,是數據的子集。
1.4.5 數據結構
不同數據元素之間不是獨立的,而是存在特定的關係,將這些關係稱爲結構。
數據結構:是相互之間存在一種或多種特定關係的數據元素的集合。
1.5 邏輯結構與物理結構
按視點的不同,把數據結構分爲邏輯結構和物理結構。
1.5.1 邏輯結構
邏輯結構:是指數據對象中數據元素之間的相互關係。
集合結構
集合結構:集合結構中的數據元素除了同屬於一個集合外,它們之間沒有其他關係。線性結構
線性結構:線性結構中的數據元素之間是一對一的關係。樹性結構
樹形結構中的數據元素之間存在一種一對多的層次關係。圖形結構
圖形結構的數據元素是多對多的關係。
1.5.2 物理結構
物理結構:是指數據的邏輯結構在計算機中的存儲形式。
數據元素的存儲結構形式有兩種:順序存儲和鏈式存儲。
順序存儲結構
順序存儲結構:是把數據元素存放在地址連續的存儲單元裏,其數據間的邏輯關係和物理關係是一致的。鏈式存儲結構
是把數據元素存放在任意的存儲單元裏,這組存儲單元可以是連續的,也可以是不連續的。
邏輯結構是面向實際問題的,而物理結構是面向計算機的,其基本目標就是將數據及其邏輯關係存儲到計算機的內存中。
1.6 抽象數據類型
1.6.1 數據類型
數據類型:是指一組性質相同的值的集合及定義在此集合上的一些操作的總稱。
在c語言中,按取值的不同,數據類型分爲兩類:
- 原子類型:是不可以再分解的基本類型,包括整型、實型、字符型等。
- 結構類型:由若干個類型組合而成,是可以再分解的。
抽象是指取出事物具有的普遍性的本質。
1.6.2 抽象數據類型
是指一個數學模型集定義在該模型上的一組操作。
抽象數據類型體現了程序設計中問題分解、抽象和信息隱藏的特性。
給出描述抽象數據類型的標準格式:
ADT 抽象數據類型
DATA
數據元素之間邏輯關係的定義
operation
操作 1
初始條件
操作結果描述
操作 2
……
操作 n
……
endADT
1.7 總結回顧
數據結構的一些相關概念:
結構的分類: