數據結構基本概念:
數據結構是一門討論“描述現實世界實體的數學模型(非數值計算)及其上的操作在計算機中如何表達和實現”的學科
是數據對象在計算機中的組織方式
(圖表,圖像,聲音等屬於非數值
數據對象必定與一系列加在其上的操作相關聯
完成這些操作所用的方法就是算法
數值計算的程序設計問題:
- 結構靜力分析計算可用:線性代數方程組
- 全球天氣預報:環流模式方程(球面坐標)
計算機應用系統的兩個關鍵問題:
- 表示:對象及其關系在計算機中的表示。只有對象及其相互關系已存儲在計算機中,才能被進一步處理
- 操作:對對象進行處理,訪問
用例1 :超市商品管理
對商品的各種信息如何加以組織和存儲
數據對象:商品
關系:線性
用例2:計算機對弈
操作對象:格局(棋盤狀態)
元素間的關系:樹(由比賽規則決定)
相關名詞:
數據:數據是描述客觀事物的數值、字符以及能輸入機器且能被處理的各種符號集合。
或者說數據是對客觀事物的符號表示,在計算機科學中指所有能輸入到計算機中並被計算機程序處理的符號的總稱。
數據包括:整型、實型、布爾型、圖像、字符、聲音等一切可以輸入到計算機中的符號集合。
例如:C語言的源程序,目標程序,可執行程序都可以認為是數據
數據元素:是組成數據的基本單位,是數據集合的個體在計算機程序中通常作為一個整體進行考慮和處理
例如整個學生信息表可看作一個數據元素
一個數據元素可由多個數據項組成,數據項是有獨立含義的最小單位。
數據對象:性質相同的數據元素的集合,是數據的一個子集。
數據結構:是指相互之間存在一種或多種特定關系的數據集合,是帶有結構的數據元素的集合,它指的是數據元素之間的相互關系,即數據的我組織形式。
補充:
數據元素相互之間的關系稱為結構。
結構分為四種基本結構:(下方會有數據的邏輯結構與存儲結構的詳解,此處簡要概括)
(1)集合:“同屬一個集合”,跟數學中的集合概念是一樣的
(2)線性結構:結構中的數據元素之間存在一個對一個的關系。例如表結構
(3)樹形結構:結構中的數據元素之間存在一個對多個的關系。
(4)圖狀結構或網狀結構:結構中的數據元素之間存在多個對多個的關系。
數據結構的形式定義為:數據結構是一個二元組。
Data_Structure=(D,S)
其中,D是數據元素的有限集,S是D上關系的有限集。
數據類型:是一組性質相同的值集合以及定義在這個值集合上的一組操作的總稱。
例如:在高級語言中,整形類型的取值范圍為:-32768~+32767,運算集合為加、減、乘、除,取模,即+、-、×、/、%。
數據類型分為原子類型和結構類型。
- 原子類型:其值不可分解。如C語言中的標准類型(整型、實型、字符型)
- 結構類型:其值是由若干成分按某種結構組成,因此是可以分解的,並且它的成分可以是非結構的,也可以是結構的。
講解:一個學生的信息可以包含姓名性別等,這就是結構類型
補充:因為指針是只是元素存儲地址,而地址就是一個值,故而指針是原子類型。
數據抽象與抽象數據類型:
抽象數據類型:指基於一類邏輯關系的數據類型以及定義在這個類型之上的一組操作
簡言之,一個數學模型以及定義在該模型上的一組操作。
抽象數據類型確定了一個模型,但將模型的實現細節隱藏起來;它定義了一組運算,但將運算的實現過程隱藏起來
用例1.
可以將整型看作一個抽象數據類型,它的取值范圍、運算集合加、減、乘、除都是確定的,實現細節被隱藏的
用例2.
線性表的抽象數據類型的描述
抽象數據類型實現的三種方法
(1)傳統的面向過程的程序設計,例如朴樹
(2)“包”、“模型”的設計方法
(3)面向對象程序設計
抽象數據類型的特性
(1)數據抽象:用ADT(抽象數據類型Abstract Data Type)描述程序處理的實體時,強調的是其本質的特征、其所能完成的功能以及它的外部用戶的接口(即外界使用它的方法)
(2)數據封裝:將實體的外部特性和其內部實現的細節分離,並且對外部用戶隱藏其內部實現細節。比如電視機,能用遙控器進行操作控制,而至於電視機顯像原理等,不需要理解。
數據的邏輯結構和存儲結果
邏輯結構:數據元素之間的邏輯關系的描述
Data_Structure=(D,S)
其中,D是數據元素的有限集,S是D上關系的有限集。
四種基本結構:
集合結構、線性結構、樹形結構、圖狀結構
集合結構:結構中的數據元素之間除了同屬於一個集合的關系外,無任何其他關系。結構中的數據元素之間除了同屬於一個集合的關系外,無任何其他關系。
線性結構:結構中的數據元素之間存在一個對一個的關系。例如表結構
將a1、a2、a3……看做一個個節點
樹形結構:結構中的數據元素之間存在一個對多個的層次關系。
例如:一個學校的我組織結構圖、家譜族譜、目錄與子目錄
圖狀結構或網狀結構:結構中的數據元素之間存在一個對多個的任意關系。
例如:城市的旅游交通關系
邏輯結構分布:
存儲結構:邏輯結構在計算機中的存儲映像,是邏輯結構在計算機中的實現,它包括數據元素的表示和關系的表示。
數據元素的表示:用若干個二進制“位串”表示 0101……
數據元素之間的關系在計算機中的表示方法:
(1)順序映像(順序存儲結構):邏輯關系與位置關系都是緊鄰的
(2)非順序映像(非順序存儲結構):不是按照邏輯順序,零散的分布
給a1增添a2的地址,給a2增添a3的地址,以此類推
head頭指針,Null作結束
運算集合:在計算機中進行運算操作的集合。
例如在信息表中查詢,插入,修改,刪除等(增刪改查)
總結:
按照某種邏輯關系組織起來的一批數據,按一定的映像方式把它存放在計算機存儲器中,並在這些數據上定義了一個運算的集合,這叫做數據結構。