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