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