數(shù)據(jù)結(jié)構(gòu),直白地理解,就是研究數(shù)據(jù)的存儲(chǔ)方式。
我們知道,數(shù)據(jù)存儲(chǔ)只有一個(gè)目的,即為了方便后期對(duì)數(shù)據(jù)的再利用,就如同我們使用數(shù)組存儲(chǔ){1,2,3,4,5}是為了后期取得它們的加和值,無(wú)緣由的數(shù)據(jù)存儲(chǔ)行為是對(duì)存儲(chǔ)空間的不負(fù)責(zé)任。
因此,數(shù)據(jù)在計(jì)算機(jī)存儲(chǔ)空間的存放,決不是胡亂的,這就要求我們選擇一種好的方式來(lái)存儲(chǔ)數(shù)據(jù),而這也是數(shù)據(jù)結(jié)構(gòu)的核心內(nèi)容。
例如,一直以來(lái)大家面對(duì)的數(shù)據(jù)存儲(chǔ),都是類似存儲(chǔ) 1、2、{a,b,c} 這樣的問(wèn)題,解決方式無(wú)疑是用變量或者數(shù)組對(duì)數(shù)據(jù)進(jìn)行存儲(chǔ),即:
int a=1;
int b=2;
char str[3]={'a','b','c'};
但是,如果要存儲(chǔ)這樣一組數(shù)據(jù):{張亮,張平,張華,張群,張晶,張磊},數(shù)據(jù)之間具有這樣的關(guān)系:張亮是張平、張華和張群的父親,同時(shí)張平還是張晶和張磊的父親,數(shù)據(jù)之間的關(guān)系如圖1 所示:
圖 1 數(shù)據(jù)及數(shù)據(jù)之間的關(guān)系
對(duì)于存儲(chǔ)之間具有復(fù)雜關(guān)系的數(shù)據(jù),如果還是用變量或數(shù)組來(lái)存儲(chǔ)(比如用數(shù)組存儲(chǔ) {“張亮”,"張平",“張華”,"張群","張晶","張磊"} ),數(shù)據(jù)存儲(chǔ)是沒(méi)有問(wèn)題,但是無(wú)法體現(xiàn)數(shù)據(jù)之間的邏輯關(guān)系,后期根本無(wú)法使用,顯然不明智。
針對(duì)此類數(shù)據(jù),數(shù)據(jù)結(jié)構(gòu)中提供有專門的樹結(jié)構(gòu)來(lái)存儲(chǔ)這類數(shù)據(jù)。
再比如,導(dǎo)航無(wú)疑是出游旅行的必備神器,在我們程序員眼中,無(wú)論是哪款導(dǎo)航軟件,其導(dǎo)航功能的實(shí)現(xiàn)都需要大量地圖數(shù)據(jù)的支持。很明顯,這些數(shù)據(jù)絕不是使用變量或數(shù)組進(jìn)行存儲(chǔ)的,那樣對(duì)于數(shù)據(jù)的使用簡(jiǎn)直是個(gè)悲劇。
針對(duì)此類數(shù)據(jù),數(shù)據(jù)結(jié)構(gòu)提供了圖存儲(chǔ)結(jié)構(gòu),專門用于存儲(chǔ)這類數(shù)據(jù)。
通過(guò)以上兩個(gè)示例可以體會(huì)出,數(shù)據(jù)結(jié)構(gòu)教會(huì)我們的絕不僅僅是如何存儲(chǔ) 1、2、{a,b,c} 這樣簡(jiǎn)單的數(shù)據(jù),而是解決具有復(fù)雜關(guān)系的大量數(shù)據(jù)的存儲(chǔ)問(wèn)題。
因此,數(shù)據(jù)結(jié)構(gòu)是什么? 我認(rèn)為,數(shù)據(jù)結(jié)構(gòu)是一門學(xué)科,它教會(huì)我們“如何存儲(chǔ)具有復(fù)雜關(guān)系的數(shù)據(jù)更有助于后期對(duì)數(shù)據(jù)的再利用”。
-
數(shù)據(jù)存儲(chǔ)
+關(guān)注
關(guān)注
5文章
971瀏覽量
50909 -
數(shù)據(jù)結(jié)構(gòu)
+關(guān)注
關(guān)注
3文章
573瀏覽量
40130 -
計(jì)算機(jī)存儲(chǔ)
+關(guān)注
關(guān)注
0文章
13瀏覽量
6823
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論