數(shù)據(jù)的存儲結(jié)構(gòu)包括哪四種
存儲結(jié)構(gòu)有:
1、鏈接存儲:在計(jì)算機(jī)中用一組任意的存儲單元存儲線性表的數(shù)據(jù)元素(這組存儲單元可以是連續(xù)的,也可以是不連續(xù)的)。
例:鏈。
2、順序存儲:在計(jì)算機(jī)中用一組地址連續(xù)的存儲單元依次存儲線性表的各個(gè)數(shù)據(jù)元素,稱作線性表的順序存儲結(jié)構(gòu)。
例:數(shù)組,鏈。
3、索引存儲:除建立存儲結(jié)點(diǎn)信息外,還建立附加的索引表來標(biāo)識結(jié)點(diǎn)的地址,索引表由若干索引項(xiàng)組成。
例:線索樹。
4、散列存儲:散列存儲,又稱hash存儲,是一種力圖將數(shù)據(jù)元素的存儲位置與關(guān)鍵碼之間建立確定對應(yīng)關(guān)系的查找技術(shù)。
例:棧(既可以通過順序存儲也可以同通過隨機(jī)存儲)。
順序存儲和鏈接存儲的基本原理:
在順序存儲中,每個(gè)存儲空間含有所存元素本身的信息,元素之間的邏輯關(guān)系是通過數(shù)組下標(biāo)位置簡單計(jì)算出來的線性表的順序存儲,若一個(gè)元素存儲在對應(yīng)數(shù)組中的下標(biāo)位置為i,則它的前驅(qū)元素在對應(yīng)數(shù)組中的下標(biāo)位置為i-1,它的后繼元素在對應(yīng)數(shù)組中的下標(biāo)位置為i+1。
在鏈?zhǔn)酱鎯Y(jié)構(gòu)中,存儲結(jié)點(diǎn)不僅含有所存元素本身的信息,而且含有元素之間邏輯關(guān)系的信息。
在數(shù)據(jù)的順序存儲中,由于每個(gè)元素的存儲位置都可以通過簡單計(jì)算得到,所以訪問元素的時(shí)間都相同。
而在數(shù)據(jù)的鏈接存儲中,由于每個(gè)元素的存儲位置保存在它的前驅(qū)或后繼結(jié)點(diǎn)中,所以只有當(dāng)訪問到其前驅(qū)結(jié)點(diǎn)或后繼結(jié)點(diǎn)后才能夠按指針訪問到,訪問任一元素的時(shí)間與該元素結(jié)點(diǎn)在鏈?zhǔn)酱鎯Y(jié)構(gòu)中的位置有關(guān)。
數(shù)據(jù)存儲方式
數(shù)據(jù)存儲方式有以下幾種:
(1)順序存儲方法。該方法把邏輯上相鄰的結(jié)點(diǎn)存儲在物理位置上相鄰的存儲單元里,結(jié)點(diǎn)間的邏輯關(guān)系由存儲單元的鄰接關(guān)系來體現(xiàn)。由此得到的存儲表示稱為順序存儲結(jié)構(gòu) (Sequential Storage Structure ),通常借助程序語言的數(shù)組描述。該方法主要應(yīng)用于線性的數(shù)據(jù)結(jié)構(gòu)。非線性的數(shù)據(jù)結(jié)構(gòu)也可通過某種線性化的方法實(shí)現(xiàn)順序存儲。
(2)鏈接存儲方法。該方法不要求邏輯上相鄰的結(jié)點(diǎn)在物理位置上亦相鄰,結(jié)點(diǎn)間的邏輯關(guān)系由附加的指針字段表示。由此得到的存儲表示稱為鏈?zhǔn)酱鎯Y(jié)構(gòu)(Linked Storage Structure), 通常借助于程序語言的指針類型描述。
(3)索引存儲方法。該方法通常在儲存結(jié)點(diǎn)信息的同時(shí),還建立附加的索引表。 索引表由若干索引項(xiàng)組成。若每個(gè)結(jié)點(diǎn)在索引表中都有一個(gè)索引項(xiàng),則該索引表稱之為稠密索引(Den Index )。
(4)散列存儲方法,該方法的基本思想是根據(jù)結(jié)點(diǎn)的關(guān)鍵字直接計(jì)算出該結(jié)點(diǎn)的存儲地址。
什么是數(shù)據(jù)的存儲
什么是數(shù)據(jù)存儲?
數(shù)據(jù)的存儲結(jié)構(gòu)指的是
數(shù)據(jù)的存儲結(jié)構(gòu)指的數(shù)據(jù)結(jié)構(gòu)(數(shù)據(jù)的邏輯結(jié)構(gòu))在計(jì)算機(jī)中的表示,又稱物理結(jié)構(gòu)。數(shù)據(jù)的存儲結(jié)構(gòu)主要有兩種:順序存儲結(jié)構(gòu)和鏈?zhǔn)酱鎯Y(jié)構(gòu)。
順序存儲結(jié)構(gòu)的主要優(yōu)點(diǎn)是節(jié)省存儲空間,因?yàn)榉峙浣o數(shù)據(jù)的存儲單元全用存放結(jié)點(diǎn)的數(shù)據(jù)(不考慮c/c++語言中數(shù)組需指定大小的情況),結(jié)點(diǎn)之間的邏輯關(guān)系沒有占用額外的存儲空間。
采用這種方法時(shí),可實(shí)現(xiàn)對結(jié)點(diǎn)的隨機(jī)存取,即每一個(gè)結(jié)點(diǎn)對應(yīng)一個(gè)序號,由該序號可以直接計(jì)算出來結(jié)點(diǎn)的存儲地址。但順序存儲方法的主要缺點(diǎn)是不便于修改,對結(jié)點(diǎn)的插入、刪除運(yùn)算時(shí),可能要移動一系列的結(jié)點(diǎn)。
鏈?zhǔn)酱鎯Y(jié)構(gòu)一般在計(jì)算機(jī)的硬盤中,文件都是鏈?zhǔn)酱鎯Φ摹N覀冎溃鄠€(gè)扇區(qū)組成一個(gè)簇,簇是計(jì)算機(jī)存儲數(shù)據(jù)的基本單位。而一個(gè)文件是存儲在多個(gè)在空間上也許并不相連的簇中的。這就是鏈?zhǔn)酱鎯Α?/p>
但是為了能夠讀取出這個(gè)文件,計(jì)算機(jī)會在該文件第一部分的尾部寫上第二部分所在的簇號。第二部分的尾部又寫上第三部分,以此類推,最后一部分寫上一段代碼,表示這是該文件的最后一部分。值得一提的是,高簇號在后。(如代碼所示的1234實(shí)為簇3412)文件所占簇可認(rèn)為是隨機(jī)分配的。
數(shù)據(jù)的儲存結(jié)構(gòu)有哪些
本文發(fā)布于:2023-02-28 18:49:00,感謝您對本站的認(rèn)可!
本文鏈接:http://www.newhan.cn/zhishi/a/167758507546474.html
版權(quán)聲明:本站內(nèi)容均來自互聯(lián)網(wǎng),僅供演示用,請勿用于商業(yè)和其他非法用途。如果侵犯了您的權(quán)益請與我們聯(lián)系,我們將在24小時(shí)內(nèi)刪除。
本文word下載地址:數(shù)據(jù)的存儲(數(shù)據(jù)的存儲結(jié)構(gòu)分為哪兩類).doc
本文 PDF 下載地址:數(shù)據(jù)的存儲(數(shù)據(jù)的存儲結(jié)構(gòu)分為哪兩類).pdf
| 留言與評論(共有 0 條評論) |