更新時(shí)間:2021-06-22 12:48:36 來源:動(dòng)力節(jié)點(diǎn) 瀏覽942次
數(shù)據(jù):所有可能被輸入到計(jì)算機(jī)中,且能被計(jì)算機(jī)處理的符號的集合。一個(gè)班中所有的學(xué)生。
數(shù)據(jù)元素:數(shù)據(jù)的基本單位。學(xué)生
數(shù)據(jù)項(xiàng):具有獨(dú)立含義的數(shù)據(jù)最小單位。學(xué)生的學(xué)號,性別等
數(shù)據(jù)對象:性質(zhì)相同數(shù)據(jù)元素的集合,是數(shù)據(jù)的一個(gè)子集。男學(xué)生
數(shù)據(jù)結(jié)構(gòu):所有數(shù)據(jù)元素以及數(shù)據(jù)元素之間的關(guān)系,可以看做相互之間存在著某種特定關(guān)系的數(shù)據(jù)元素的集合。一個(gè)班所有學(xué)生+學(xué)生之間的關(guān)系(集合)
數(shù)據(jù)的邏輯結(jié)構(gòu)
數(shù)據(jù)的存儲結(jié)構(gòu)
數(shù)據(jù)的運(yùn)算
1.數(shù)據(jù)的邏輯結(jié)構(gòu)
是從數(shù)據(jù)元素的邏輯關(guān)系上描述數(shù)據(jù)的,是指數(shù)據(jù)元素之間邏輯關(guān)系的整體,通常是從求解問題中提煉出來的
數(shù)據(jù)邏輯結(jié)構(gòu)的常用表示:
圖表表示:采用表格或者圖形直接描述數(shù)據(jù)之間的邏輯關(guān)系。
二元組表示:B=(D,R),D數(shù)據(jù)的集合,R數(shù)據(jù)關(guān)系(r1,r2)的集合,r1數(shù)據(jù)元素間的關(guān)系r1={,,}
前驅(qū)元素與后繼元素:a,b,c是前驅(qū)元素,b,c,d是后繼元素
開始元素與終端元素:a是開始元素,d是終端元素
邏輯結(jié)構(gòu)的類型:
集合:數(shù)據(jù)元素之間同屬于一個(gè)集合,無其他關(guān)系,(并列)
線性結(jié)構(gòu):一對一的關(guān)系,開始與終端元素唯一,其他元素有且僅有一個(gè)前驅(qū)元素+后去元素。
樹形結(jié)構(gòu):一堆多的關(guān)系,開始元素外,一個(gè)元素僅有一個(gè)前驅(qū)元素
圖形結(jié)構(gòu):多對多的關(guān)系。
2.數(shù)據(jù)的存儲結(jié)構(gòu)
數(shù)據(jù)邏輯結(jié)構(gòu)在計(jì)算機(jī)中的存儲實(shí)現(xiàn)稱為數(shù)據(jù)的存儲結(jié)構(gòu),存儲結(jié)構(gòu)需要存儲數(shù)據(jù)元素和數(shù)據(jù)元素之間的關(guān)系。
4種常見的存儲結(jié)構(gòu):
順序存儲結(jié)構(gòu):連續(xù)的存儲單元存放所有數(shù)據(jù)元素,邏輯相鄰,存儲也相鄰(元素之間的關(guān)系)。優(yōu)點(diǎn)是存取效率高,分配給數(shù)據(jù)元素的存儲單元全部用來存儲數(shù)據(jù)元素,元素之間的關(guān) 系沒有占用額外的存儲空間。每個(gè)元素對應(yīng)一個(gè)邏輯序號,可直接獲取元素。缺點(diǎn)是不便于數(shù)據(jù)修改,插入刪除數(shù)據(jù)可能需要移動(dòng)一系列數(shù)據(jù)。
鏈?zhǔn)酱鎯Y(jié)構(gòu):每個(gè)元素用一個(gè)內(nèi)存節(jié)點(diǎn)存儲,內(nèi)存節(jié)點(diǎn)是單獨(dú)分配的,不一定是連續(xù)的,無須占用一整塊存儲空間,每個(gè)內(nèi)存節(jié)點(diǎn)包含一個(gè)指向相鄰節(jié)點(diǎn)的指針,通過指針鏈接所有節(jié)點(diǎn)。優(yōu)點(diǎn)是便于數(shù)據(jù)修改,數(shù)據(jù)插入刪除只需要修改指針域,不必移動(dòng)節(jié)點(diǎn)。缺點(diǎn)是存儲內(nèi)存利用率低,需要存儲指針域,邏輯相鄰,存儲不一定相鄰,不能隨機(jī)存取,需要從頭結(jié)點(diǎn)開始查找。
索引存儲結(jié)構(gòu):存儲數(shù)據(jù)元素信息的同時(shí)還建立附加的索引表,存儲所有數(shù)據(jù)元素的表稱為主數(shù)據(jù)表,每個(gè)元素有一個(gè) 關(guān)鍵字和對應(yīng)的存儲地址。索引表每一項(xiàng)成為索引項(xiàng),一般是“關(guān)鍵字,地址”,索引表是按關(guān)鍵字有序排列的。優(yōu)點(diǎn)是查找效率高,缺點(diǎn)是需要建立索引表,從而增加了空間開銷。
哈希(散列)存儲結(jié)構(gòu):根據(jù)元素的關(guān)鍵字通過hash函數(shù)計(jì)算出一個(gè)值,作為元素的存儲地址。優(yōu)點(diǎn)是查找速度快,給出元素可直接根據(jù)元素的關(guān)鍵字找到元素的存儲地址,與前三種不同,哈希存儲方法只存儲數(shù)據(jù)結(jié)構(gòu)的數(shù)據(jù)元素,不存儲元素之間的邏輯關(guān)系,只適合快速查找和插入的場景。
3.數(shù)據(jù)的運(yùn)算
對數(shù)據(jù)實(shí)施的運(yùn)算。常用的運(yùn)算有檢索,插入,刪除,更新,排序等,根據(jù)邏輯結(jié)構(gòu)和存儲結(jié)構(gòu)分為運(yùn)算定義和運(yùn)算實(shí)現(xiàn)
運(yùn)算定義:是運(yùn)算功能的描述,抽象的,基于邏輯結(jié)構(gòu)
運(yùn)算實(shí)現(xiàn):運(yùn)算的實(shí)現(xiàn)算法,具體的,基于存儲結(jié)構(gòu)。
對于一種數(shù)據(jù)結(jié)構(gòu),其邏輯結(jié)構(gòu)總是唯一的,但它可能對應(yīng)多種存儲結(jié)構(gòu),不同存儲結(jié)構(gòu)的同一實(shí)現(xiàn)過程可能不同。
數(shù)據(jù)類型和抽象數(shù)據(jù)類型
數(shù)據(jù)類型:一組性質(zhì)相同的值得集合和定義在此集合上的一組操作的總稱,是某種程序設(shè)計(jì)語言已經(jīng)實(shí)現(xiàn)的數(shù)據(jù)結(jié)構(gòu)。C、C++常用的數(shù)據(jù)類型(原子類型,與結(jié)構(gòu)類型):基本類型,指針類型,數(shù)組類型,結(jié)構(gòu)體類型,共生體類型,自定義類型。
抽象數(shù)據(jù)類型(ADT):用戶進(jìn)行軟件系統(tǒng)設(shè)計(jì)時(shí)從問題等待數(shù)學(xué)模型中抽象出來的邏輯數(shù)據(jù)結(jié)構(gòu)和邏輯結(jié)構(gòu)上的運(yùn)算,不考慮具體的存儲類型和運(yùn)算實(shí)現(xiàn)。
ADT 抽象數(shù)據(jù)類型名
{ 數(shù)據(jù)類型:數(shù)據(jù)對象的聲明(D)
數(shù)據(jù)關(guān)系:數(shù)據(jù)關(guān)系的聲明(R)
基本運(yùn)算:基本運(yùn)算的聲明(運(yùn)算定義)
}
算法是對特定問題求解步驟的一種描述,它是指令的有限序列
1.算法的五種特性:
有窮性
確定性
可行性
有輸入
有輸出
2.算法的設(shè)計(jì)目標(biāo)
正確性
可使用性
可讀性
健壯性
高效率與低存儲量需求
以上就是動(dòng)力節(jié)點(diǎn)小編介紹的"數(shù)據(jù)結(jié)構(gòu)教程:基本定義",希望對大家有幫助,如有疑問,請?jiān)诰€咨詢,有專業(yè)老師隨時(shí)為您服務(wù)。
相關(guān)閱讀
初級 202925
初級 203221
初級 202629
初級 203743