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