什么是數(shù)據(jù)結(jié)構(gòu)數(shù)據(jù)結(jié)構(gòu)的分類
數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)存儲(chǔ)、組織數(shù)據(jù)的方式。數(shù)據(jù)結(jié)構(gòu)是指相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。那么你對數(shù)據(jù)結(jié)構(gòu)了解多少呢?以下是由學(xué)習(xí)啦小編整理關(guān)于什么是數(shù)據(jù)結(jié)構(gòu)的內(nèi)容,希望大家喜歡!
數(shù)據(jù)結(jié)構(gòu)的定義
名詞定義
數(shù)據(jù)結(jié)構(gòu)是指相互之間存在著一種或多種關(guān)系的數(shù)據(jù)元素的集合和該集合中數(shù)據(jù)元素之間的關(guān)系組成。記為:Data_Structure=(D,R)
其中D是數(shù)據(jù)元素的集合,R是該集合中所有元素之間的關(guān)系的有限集合。
其它定義
Sartaj Sahni在他的《數(shù)據(jù)結(jié)構(gòu)、算法與應(yīng)用》一書中稱:“數(shù)據(jù)結(jié)構(gòu)是數(shù)據(jù)對象,以及存在于該對象的實(shí)例和組成實(shí) 例的數(shù)據(jù)元素之間的各種聯(lián)系。這些聯(lián)系可以通過定義相關(guān)的函數(shù)來給出。”他將數(shù)據(jù)對象(data object)定義為“一個(gè)數(shù)據(jù)對象是實(shí)例或值的集合”。
Clifford A、Shaffer在《數(shù)據(jù)結(jié)構(gòu)與算法分析》一書中的定義是:“數(shù)據(jù)結(jié)構(gòu)是ADT(抽象數(shù)據(jù)類型Abstract Data Type) 的物理實(shí)現(xiàn)。”
Robert L、Kruse在《數(shù)據(jù)結(jié)構(gòu)與程序設(shè)計(jì)》一書中,將一個(gè)數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)過程分成抽象層、數(shù)據(jù)結(jié)構(gòu)層和實(shí)現(xiàn)層。其中,抽象層是指抽象數(shù)據(jù)類型層,它討論數(shù)據(jù)的邏輯結(jié)構(gòu)及其運(yùn)算,數(shù)據(jù)結(jié)構(gòu)層和實(shí)現(xiàn)層討論一個(gè)數(shù)據(jù)結(jié)構(gòu)的表示和在計(jì)算機(jī)內(nèi)的存儲(chǔ)細(xì)節(jié)以及運(yùn)算的實(shí)現(xiàn)。
數(shù)據(jù)結(jié)構(gòu)具體指同一類數(shù)據(jù)元素中,各元素之間的相互關(guān)系,包括三個(gè)組成成分,數(shù)據(jù)的邏輯結(jié)構(gòu),數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)和數(shù)據(jù)運(yùn)算結(jié)構(gòu)。
數(shù)據(jù)結(jié)構(gòu)的研究對象
一、數(shù)據(jù)的邏輯結(jié)構(gòu):指反映數(shù)據(jù)元素之間的邏輯關(guān)系的數(shù)據(jù)結(jié)構(gòu),其中的邏輯關(guān)系是指數(shù)據(jù)元素之間的前后件關(guān)系,而與他們在計(jì)算機(jī)中的存儲(chǔ)位置無關(guān)。邏輯結(jié)構(gòu)包括:
1、集合
數(shù)據(jù)結(jié)構(gòu)中的元素之間除了“同屬一個(gè)集合” 的相互關(guān)系外,別無其他關(guān)系;
2、線性結(jié)構(gòu)
數(shù)據(jù)結(jié)構(gòu)中的元素存在一對一的相互關(guān)系;
3、樹形結(jié)構(gòu)
數(shù)據(jù)結(jié)構(gòu)中的元素存在一對多的相互關(guān)系;
4、圖形結(jié)構(gòu)
數(shù)據(jù)結(jié)構(gòu)中的元素存在多對多的相互關(guān)系。
二、數(shù)據(jù)的物理結(jié)構(gòu):指數(shù)據(jù)的邏輯結(jié)構(gòu)在計(jì)算機(jī)存儲(chǔ)空間的存放形式。
數(shù)據(jù)的物理結(jié)構(gòu)是數(shù)據(jù)結(jié)構(gòu)在計(jì)算機(jī)中的表示(又稱映像),它包括數(shù)據(jù)元素的機(jī)內(nèi)表示和關(guān)系的機(jī)內(nèi)表示。由于具體實(shí)現(xiàn)的方法有順序、鏈接、索引、散列等多種,所以,一種數(shù)據(jù)結(jié)構(gòu)可表示成一種或多種存儲(chǔ)結(jié)構(gòu)。
數(shù)據(jù)元素的機(jī)內(nèi)表示(映像方法): 用二進(jìn)制位(bit)的位串表示數(shù)據(jù)元素。通常稱這種位串為節(jié)點(diǎn)(node)。當(dāng)數(shù)據(jù)元素有若干個(gè)數(shù)據(jù)項(xiàng)組成時(shí),位串中與個(gè)數(shù)據(jù)項(xiàng)對應(yīng)的子位串稱為數(shù)據(jù)域(data field)。因此,節(jié)點(diǎn)是數(shù)據(jù)元素的機(jī)內(nèi)表示(或機(jī)內(nèi)映像)。
關(guān)系的機(jī)內(nèi)表示(映像方法):數(shù)據(jù)元素之間的關(guān)系的機(jī)內(nèi)表示可以分為順序映像和非順序映像,常用兩種存儲(chǔ)結(jié)構(gòu):順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。順序映像借助元素在存儲(chǔ)器中的相對位置來表示數(shù)據(jù)元素之間的邏輯關(guān)系。非順序映像借助指示元素存儲(chǔ)位置的指針(pointer)來表示數(shù)據(jù)元素之間的邏輯關(guān)系。
三、數(shù)據(jù)結(jié)構(gòu)的運(yùn)算。