数据结构的基本概念和抽象数据类型
1、基本概念和術語
數據:是對客觀事物的符號表示。
數據元素:數據的基本單位,一個數據元素可由若干個數據項組成,數據項是數據的不可分割的最小單位
數據對象:性質相同的數據元素的集合是數據的一個子集
數據結構:相互之間存在一種或多種特定的關系的數據元素的集合
4種基本結構:
1.線性結構:結構中的數據元素之間存在一個對一個的關系
2.樹形結構:結構中的數據元素之間存在一個對多個的關系
3.圖狀結構或網狀結構:結構中的數據元素之間存在多個對多個的關系
4.集合:結構中的數據元素之間除了“同屬于一個集合”的關系之外別無關系
數據結構的形式定義為:數據結構是一個二元組
Data_Structure=(D,S):D為數據元素的有限集,S是D上關系的有限集
邏輯結構:結構定義中的關系描述
存儲結構/物理結構:數據結構在計算機中的表示,包括數據元素的表示和關系的表示
計算機中最小單位:位
數據元素:若干個位組合起來形成的一個串(元素/節點可以看成數據元素在計算機中的一個映射)
數據域:當數據元素由若干數據項組成時,位串中對應于各個數據項的子位串為數據域
數據元素在計算機中的表示方法:順序映像和非順序映像
順序映像:借助元素在存儲器中的相對位置來表示數據元素之間的邏輯關系
非順序映像:借助指示元素存儲地址的指針來表示元素之間的邏輯關系
數據元素在計算機中的存儲結構:順序存儲結構和鏈式存儲結構
數據類型是一個值的集合和定義在這個值集上的一組操作的總稱。例如:整型變量,其值集為某個區間上的整數,定義在其上的操作為加減乘除和取模等算術運算
若按其值的不同特性,可以分為下列三種類型:
原子類型:屬原子類型的變量的值是不可分割的。例如:C語言中的基本類型(整型、實型、字符型和枚舉類型)、指針類型和空類型
結構類型:結構類型的值是由若干成分按某種結構組成的,因此是可以分解的,并且它的成分可以是非結構的,也可以是結構的。
固定聚合類型:屬于該類型的變量,其值由確定數目的成分按某種結構組成
可變聚合類型:構成可變聚合類型“值”的成分的數目不確定
和數據結構的形式定義相對應,抽象數據類型可用以下三元組表示:
(D,S,P)/D表示數據對象,S是D上的關系集,P是對D的基本操作集。定義抽象數據類型:
ADT?抽象數據類型名{
數據對象:<數據對象的定義>
數據關系:<數據關系的定義>
基本操作:<基本操作的定義>
}ADT?抽象數據類型名
基本操作的定義格式:
基本操作名(參數表)
??????初始條件:<初始條件描述>//執行操作之前數據結構和參數應該滿足的條件,若不滿足則操作失敗返回出錯信息
??????操作結果:<操作結果描述>//操作正常完成之后數據結構的變化和應返回的結果
基本操作有兩種參數:賦值參數只為操作提供輸入值
?????????????????????????????????引用參數以&打頭,除可提供輸入值外,還將返回操作結果
例:
ADT Triplet{
數據對象:D={e1,e2,e3|e1,e2,e3∈ElemSet(定義了關系運算的某個集合)}
數據關系:R1={<e1,e2>,<e2,e3>}
基本操作:
IsAscending(T)
初始條件:三元組T已存在。
操作結果:如果T的3個元素按升序排列,則返回1,否則返回0.
}ADT Triplet
多邊數據類型:其值的成分不確定的數據類型
2、抽象數據類型的表示與實現
抽象數據類型通過固有數據類型來表示和實現,即利用處理器中已存在的數據類型來說明新的結構,用已經實現的操作來組合新的操作。
C語言的一些核心子集:
預定義常量和類型
數據結構的表示(存儲結構)用類型定義(typedef)描述
自定義函數
賦值語句
選擇語句
循環語句
結束語句
輸入輸出語句
注釋
基本函數
邏輯運算約定
3、算法和算法分析
算法的性質:有窮性,確定性,可行性,輸入,輸出
算法設計的要求:正確性,可讀性,健壯性,效率和低存儲量需求
算法效率的度量:
事后統計的方法(使用計算機內部的計時功能)
事前分析估算:一個算法是由控制結構(順序、分支和循環3種)和原操作(指固有數據類型的操作)構成的,則算法時間由這兩者共同決定
總結
以上是生活随笔為你收集整理的数据结构的基本概念和抽象数据类型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 汇编语言EQU伪指令
- 下一篇: 汇编语言TEXTEQU伪指令