最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)(物理結(jié)構(gòu))詳解

2023-07-09 16:35 作者:解學(xué)武  | 我要投稿

數(shù)據(jù)結(jié)構(gòu)教我們有效地存儲(chǔ)數(shù)據(jù),既要存儲(chǔ)數(shù)據(jù)本身,還要存儲(chǔ)數(shù)據(jù)之間的關(guān)系。

存儲(chǔ)數(shù)據(jù)本身,也就是將數(shù)據(jù)存儲(chǔ)到內(nèi)存里。數(shù)據(jù)在內(nèi)存中的存儲(chǔ)狀態(tài),就稱為數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu),也叫物理結(jié)構(gòu)。

數(shù)據(jù)結(jié)構(gòu)中,將數(shù)據(jù)之間的關(guān)系稱為數(shù)據(jù)的邏輯結(jié)構(gòu)。以下圖所示的家譜圖為例,數(shù)據(jù)之間存在很多關(guān)系,比如張亮是張平的父輩、是張靜的祖輩等,所有這些關(guān)系就構(gòu)成了數(shù)據(jù)的邏輯結(jié)構(gòu)。

圖 1 數(shù)據(jù)的邏輯結(jié)構(gòu)

數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)

在內(nèi)存中,數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)無非有以下兩種情況:
1) 集中存儲(chǔ):所有數(shù)據(jù)存儲(chǔ)在一整塊內(nèi)存空間中,數(shù)據(jù)之間緊挨著存放,如下圖所示:

圖 2 數(shù)據(jù)集中存儲(chǔ)

2) 分散存儲(chǔ):各個(gè)數(shù)據(jù)隨機(jī)存儲(chǔ)在內(nèi)存空間中,如下圖所示:

圖 3 數(shù)據(jù)分散存儲(chǔ)

兩種存儲(chǔ)結(jié)構(gòu)各有優(yōu)勢,將數(shù)據(jù)集中存儲(chǔ),方便后續(xù)查找數(shù)據(jù);將數(shù)據(jù)分散存儲(chǔ),方便后續(xù)增加或者刪除數(shù)據(jù)。

數(shù)據(jù)結(jié)構(gòu)中,用順序存儲(chǔ)結(jié)構(gòu)(順序表)實(shí)現(xiàn)數(shù)據(jù)的集中存儲(chǔ),用鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)(鏈表)實(shí)現(xiàn)數(shù)據(jù)的分散存儲(chǔ)。有關(guān)這兩種存儲(chǔ)結(jié)構(gòu),我們會(huì)在后續(xù)章節(jié)中做詳細(xì)講解。

數(shù)據(jù)的邏輯結(jié)構(gòu)

數(shù)據(jù)之間可能存在的關(guān)系,有以下 4 種情況:

1) 無關(guān)系

圖 4“無關(guān)系”的邏輯結(jié)構(gòu)

所謂“無關(guān)系”,即數(shù)據(jù)之間不存在任何關(guān)系。例如上圖中,{1,2,3,4} 中各個(gè)數(shù)據(jù)之間就沒有任何關(guān)系。

2) 一對(duì)一

圖 5“一對(duì)一”的邏輯結(jié)構(gòu)

上圖的數(shù)據(jù)集中,每個(gè)數(shù)據(jù)的左側(cè)有且僅有一個(gè)數(shù)據(jù)與其相鄰(除 1 外);同樣,每個(gè)數(shù)據(jù)的右側(cè)也只有一個(gè)數(shù)據(jù)與其相鄰(除 n 外),所有的數(shù)據(jù)都是如此,數(shù)據(jù)之間就是“一對(duì)一”的邏輯結(jié)構(gòu);

3) 一對(duì)多

圖 1 所示的“家譜圖”中,數(shù)據(jù)之間就是“一對(duì)多”的邏輯結(jié)構(gòu)。

以“張平”為例,他的父輩是“張亮”;他有兩個(gè)孩子,分別是“張晶”和“張磊”?!皬埰健焙推渌鼣?shù)據(jù)之間就是“一對(duì)多”的關(guān)系,整個(gè)數(shù)據(jù)集呈現(xiàn)“一對(duì)多”的邏輯結(jié)構(gòu)。

4) 多對(duì)多

圖 6“多對(duì)多”的邏輯結(jié)構(gòu)

{V1,V2,V3,V4} 數(shù)據(jù)之間就具有“多對(duì)多”的邏輯結(jié)構(gòu)。

例如,從 V1 出發(fā)可以到達(dá) V2、V3、V4;同樣,從 V2、V3、V4 也可以到達(dá) V1。V1 和其它數(shù)據(jù)之間就是“多對(duì)多”的邏輯關(guān)系。

多對(duì)多關(guān)系和一對(duì)多關(guān)系的區(qū)別在于:一對(duì)多關(guān)系中不存在環(huán)路,而多對(duì)多關(guān)系中存在環(huán)路,比如V1->V3->V2->V1就是一個(gè)環(huán)路。

針對(duì)每一種邏輯結(jié)構(gòu)的數(shù)據(jù),數(shù)據(jù)結(jié)構(gòu)都提供了存儲(chǔ)它們的方案:

  • 查找表存儲(chǔ)結(jié)構(gòu):專門存儲(chǔ)無邏輯結(jié)構(gòu)的數(shù)據(jù);

  • 線性存儲(chǔ)結(jié)構(gòu):專門存儲(chǔ)具有“一對(duì)一”邏輯結(jié)構(gòu)的數(shù)據(jù);

  • 樹存儲(chǔ)結(jié)構(gòu):專門存儲(chǔ)具有“一對(duì)多”邏輯結(jié)構(gòu)的數(shù)據(jù);

  • 圖存儲(chǔ)結(jié)構(gòu):專門用來存儲(chǔ)具有“多對(duì)多”關(guān)系的數(shù)據(jù);

以上這些存儲(chǔ)結(jié)構(gòu),后續(xù)會(huì)一一做詳細(xì)地講解。

總結(jié)

關(guān)于數(shù)據(jù)結(jié)構(gòu),與其說它是一門研究存儲(chǔ)數(shù)據(jù)以及數(shù)據(jù)之間關(guān)系的學(xué)科,還可以這樣概括:它是一門研究數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)和邏輯結(jié)構(gòu)的學(xué)科。通過研究數(shù)據(jù)的物理結(jié)構(gòu),可以掌握存儲(chǔ)數(shù)據(jù)的方法;通過研究數(shù)據(jù)的邏輯結(jié)構(gòu),可以掌握存儲(chǔ)數(shù)據(jù)之間關(guān)系的方法。

數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)有 2 種,分別是集中存儲(chǔ)和分散存儲(chǔ)。如果想集中存儲(chǔ)數(shù)據(jù),就選擇順序存儲(chǔ)結(jié)構(gòu);如果想分散存儲(chǔ)數(shù)據(jù),就擇鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。

數(shù)據(jù)的邏輯結(jié)構(gòu)有 4 種,分別是“無關(guān)系”、“一對(duì)一”、“一對(duì)多”和“多對(duì)多”。無邏輯關(guān)系的數(shù)據(jù)可以選用查找表存儲(chǔ)結(jié)構(gòu);具有“一對(duì)一”關(guān)系的數(shù)據(jù)可以選用線性存儲(chǔ)結(jié)構(gòu);具有“一對(duì)多”關(guān)系的數(shù)據(jù)可以選用樹存儲(chǔ)結(jié)構(gòu);具有“多對(duì)多”關(guān)系的數(shù)據(jù)可以選用圖存儲(chǔ)結(jié)構(gòu)

實(shí)際場景中,確定了數(shù)據(jù)的存儲(chǔ)結(jié)構(gòu)和邏輯結(jié)構(gòu),就可以敲定數(shù)據(jù)的存儲(chǔ)方案。比如,數(shù)據(jù)呈現(xiàn)“一對(duì)多”關(guān)系,想分散存儲(chǔ),那么就選用【樹的鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)】。

邏輯結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)(物理結(jié)構(gòu))詳解的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
将乐县| 百色市| 延长县| 花垣县| 阳曲县| 辽中县| 定结县| 宜兰市| 防城港市| 靖边县| 子洲县| 改则县| 西充县| 石屏县| 新干县| 宁陵县| 射洪县| 枣阳市| 孝感市| 中超| 清流县| 玛沁县| 昌宁县| 土默特右旗| 泸溪县| 什邡市| 茌平县| 鄂尔多斯市| 肥城市| 海盐县| 阳原县| 华宁县| 宁夏| 元谋县| 西林县| 聂拉木县| 西宁市| 方山县| 什邡市| 隆回县| 合阳县|