數(shù)據(jù)結(jié)構(gòu)的主要任務(wù)就是通過(guò)分析數(shù)據(jù)對(duì)象的結(jié)構(gòu)特征,包括邏輯結(jié)構(gòu)及數(shù)據(jù)對(duì)象之間的關(guān)系,然后把邏輯結(jié)構(gòu)表示成計(jì)算機(jī)可實(shí)現(xiàn)的物理結(jié)構(gòu),從而便于計(jì)算機(jī)處理。本節(jié)主要介紹數(shù)據(jù)的邏輯結(jié)構(gòu)表示和存儲(chǔ)結(jié)構(gòu)的表示。
邏輯結(jié)構(gòu)
數(shù)據(jù)的邏輯結(jié)構(gòu)(logical structure)是指在數(shù)據(jù)對(duì)象中數(shù)據(jù)元素之間的相互關(guān)系。數(shù)據(jù)元素之間存在不同的邏輯關(guān)系構(gòu)成了以下4種結(jié)構(gòu)類型。
(1)集合。結(jié)構(gòu)中的數(shù)據(jù)元素除了同屬于一個(gè)集合外,數(shù)據(jù)元素之間沒(méi)有其他關(guān)系。這就像數(shù)學(xué)中的自然數(shù)集合,集合中的所有元素都屬于該集合,除此之外,沒(méi)有其他特性。例如,數(shù)學(xué)中的正整數(shù)集合{5,67,978,20,123,18},集合中的數(shù)除了屬于正整數(shù)外,元素之間沒(méi)有其他關(guān)系。數(shù)據(jù)結(jié)構(gòu)中的集合關(guān)系就類似于數(shù)學(xué)中的集合。
(2)線性結(jié)構(gòu)。結(jié)構(gòu)中的數(shù)據(jù)元素之間是一對(duì)一的關(guān)系。數(shù)據(jù)元素之間有一種先后的次序關(guān)系,a、b、c是一個(gè)線性表,其中,a是b的前驅(qū),b是a的后繼。
(3)樹(shù)形結(jié)構(gòu)。結(jié)構(gòu)中的數(shù)據(jù)元素之間存在一種一對(duì)多的層次關(guān)系,樹(shù)形這就像學(xué)校的組織結(jié)構(gòu)圖,學(xué)校下面是教學(xué)的院系、行政機(jī)構(gòu)及一些研究所。
(4)圖結(jié)構(gòu)。結(jié)構(gòu)中的數(shù)據(jù)元素是多對(duì)多的關(guān)系,城市之間的交通路線圖就是多對(duì)多的關(guān)系,a、b、c、d、e、f、g是7個(gè)城市,城市a和城市b、e、f都存在一條直達(dá)路線,而城市b也和a、c、f存在一條直達(dá)路線。