一、數(shù)據(jù)結(jié)構(gòu)和數(shù)據(jù)類型兩個概念的本質(zhì)
數(shù)據(jù)結(jié)構(gòu)一般是說計算機存儲和組織數(shù)據(jù)的方式,還有就是相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合,簡單來說就是數(shù)據(jù)的邏輯或物理存儲方式。而數(shù)據(jù)類型就是對數(shù)據(jù)的抽象描述,包括整型、浮點型浙西。
數(shù)據(jù)結(jié)構(gòu)是計算機存儲、組織數(shù)據(jù)的方式。數(shù)據(jù)結(jié)構(gòu)是指相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。通常情況下,精心選擇的數(shù)據(jù)結(jié)構(gòu)可以帶來更高的運行或者存儲效率。數(shù)據(jù)結(jié)構(gòu)往往同高效的檢索算法和索引技術(shù)有關(guān)。
一般認為,一個數(shù)據(jù)結(jié)構(gòu)是由數(shù)據(jù)元素依據(jù)某種邏輯聯(lián)系組織起來的。對數(shù)據(jù)元素間邏輯關(guān)系的描述稱為數(shù)據(jù)的邏輯結(jié)構(gòu);數(shù)據(jù)必須在計算機內(nèi)存儲,數(shù)據(jù)的存儲結(jié)構(gòu)是數(shù)據(jù)結(jié)構(gòu)的實現(xiàn)形式,是其在計算機內(nèi)的表示;此外討論一個數(shù)據(jù)結(jié)構(gòu)必須同時討論在該類數(shù)據(jù)上執(zhí)行的運算才有意義。
在許多類型的程序的設(shè)計中,數(shù)據(jù)結(jié)構(gòu)的選擇是一個基本的設(shè)計考慮因素。許多大型系統(tǒng)的構(gòu)造經(jīng)驗表明,系統(tǒng)實現(xiàn)的困難程度和系統(tǒng)構(gòu)造的質(zhì)量都嚴重的依賴于是否選擇了優(yōu)異的數(shù)據(jù)結(jié)構(gòu)。許多時候,確定了數(shù)據(jù)結(jié)構(gòu)后,算法就容易得到了。有些時候事情也會反過來,我們根據(jù)特定算法來選擇數(shù)據(jù)結(jié)構(gòu)與之適應(yīng)。不論哪種情況,選擇合適的數(shù)據(jù)結(jié)構(gòu)都是非常重要的。
延伸閱讀:
二、數(shù)據(jù)的物理結(jié)構(gòu)
數(shù)據(jù)的物理結(jié)構(gòu)(以后我都統(tǒng)一稱存儲結(jié)構(gòu)),表示數(shù)據(jù)元素之間的邏輯關(guān)系,一種數(shù)據(jù)結(jié)構(gòu)的邏輯結(jié)構(gòu)根據(jù)需要可以表示成多種存儲結(jié)構(gòu),常用的存儲結(jié)構(gòu)有:
順序存儲:存儲順序是連續(xù)的,在內(nèi)存中用一組地址連續(xù)的存儲單元依次存儲線性表的各個數(shù)據(jù)元素。鏈式存儲:在內(nèi)存中的存儲元素不一定是連續(xù)的,用任意地址的存儲單元存儲元素,元素節(jié)點存放數(shù)據(jù)元素以及通過指針指向相鄰元素的地址信息。索引存儲:除建立存儲結(jié)點信息外,還建立附加的索引表來標識節(jié)點的地址。索引表由若干索引項組成。散列存儲:又稱Hash存儲,由節(jié)點的關(guān)鍵碼值決定節(jié)點的存儲地址。