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

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

數(shù)據(jù)結(jié)構(gòu)與算法_簡介

2023-01-30 15:50 作者:昵昵醬紫  | 我要投稿

數(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ù)之間的邏輯關(guān)系有四種,分別是無關(guān)系、“一對一”關(guān)系、“一對多”關(guān)系和“多對多”關(guān)系。

數(shù)據(jù)結(jié)構(gòu)教我們有效地存儲數(shù)據(jù),既要存儲數(shù)據(jù)本身,還要存儲數(shù)據(jù)之間的關(guān)系。
存儲數(shù)據(jù)本身,也就是將數(shù)據(jù)存儲到內(nèi)存里。數(shù)據(jù)在內(nèi)存中的存儲狀態(tài),就稱為數(shù)據(jù)的存儲結(jié)構(gòu),也叫物理結(jié)構(gòu)。數(shù)據(jù)結(jié)構(gòu)中,將數(shù)據(jù)之間的關(guān)系稱為數(shù)據(jù)的邏輯結(jié)構(gòu)。

圖1 數(shù)據(jù)結(jié)構(gòu)中的各個存儲方案

在內(nèi)存中,數(shù)據(jù)的存儲結(jié)構(gòu)無非有以下兩種情況:

1)集中存儲:所有數(shù)據(jù)存儲在一整塊內(nèi)存空間中,數(shù)據(jù)之間緊挨著存放,如下圖所示:

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

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

數(shù)據(jù)結(jié)構(gòu)中,用順序存儲結(jié)構(gòu)實現(xiàn)數(shù)據(jù)的集中存儲,用鏈式存儲結(jié)構(gòu)(鏈表)實現(xiàn)數(shù)據(jù)的分散存儲。

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

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

1)無關(guān)系


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

2)一對一

3)一對多

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

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

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

4)多對多

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

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

例如,從 V1 出發(fā)可以到達 V2、V3、V4;同樣,從 V2、V3、V4 也可以到達 V1。V1 和其它數(shù)據(jù)之間就是“多對多”的邏輯關(guān)系。
多對多關(guān)系和一對多關(guān)系的區(qū)別在于:一對多關(guān)系中不存在環(huán)路,而多對多關(guān)系中存在環(huán)路,比如V1->V3->V2->V1就是一個環(huán)路。
針對每一種邏輯結(jié)構(gòu)的數(shù)據(jù),數(shù)據(jù)結(jié)構(gòu)都提供了存儲它們的方案:

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

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

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

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

總結(jié)

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

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

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

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




數(shù)據(jù)結(jié)構(gòu)與算法_簡介的評論 (共 條)

分享到微博請遵守國家法律
商水县| 中方县| 大埔区| 广昌县| 德庆县| 芒康县| 汝南县| 馆陶县| 广宁县| 含山县| 黄梅县| 砀山县| 岗巴县| 鄂托克旗| 桦川县| 宁蒗| 县级市| 绵阳市| 金沙县| 灵宝市| 边坝县| 桦甸市| 壤塘县| 菏泽市| 从江县| 海林市| 白山市| 高密市| 台东市| 镇宁| 遂川县| 镶黄旗| 鲜城| 宁陵县| 长兴县| 固始县| 临夏市| 三门县| 体育| 禹州市| 轮台县|