一、數(shù)據(jù)結(jié)構(gòu)中存取結(jié)構(gòu)和存儲(chǔ)結(jié)構(gòu)的不同
所謂存儲(chǔ)結(jié)構(gòu),指的是數(shù)據(jù)在內(nèi)存中真實(shí)的存儲(chǔ)狀態(tài),具體可分為 2 類,即順序存儲(chǔ)結(jié)構(gòu)和鏈?zhǔn)酱鎯?chǔ)結(jié)構(gòu)。而存取結(jié)構(gòu),指的是存取數(shù)據(jù)的方式,具體也可以分為 2 類,分別為順序存取結(jié)構(gòu)和隨機(jī)存取結(jié)構(gòu)。
存取偏向于“取”。存取結(jié)構(gòu)分為順序存取和隨機(jī)存取。
*順序存取:不能通過(guò)下標(biāo)訪問(wèn),只能按照存儲(chǔ)順序存取,與存儲(chǔ)位置有關(guān),存取第n個(gè)數(shù)據(jù)時(shí),必須先訪問(wèn)前(n-1)個(gè)數(shù)據(jù),例如鏈表。
*隨機(jī)存取:可以理解為直接存取,可以通過(guò)下標(biāo)直接訪問(wèn),與存儲(chǔ)位置無(wú)關(guān),存取第n個(gè)數(shù)據(jù)時(shí),不需要訪問(wèn)前(n-1)個(gè)數(shù)據(jù),例如數(shù)組。
存儲(chǔ)結(jié)構(gòu)的存儲(chǔ)偏向于“存”。存儲(chǔ)結(jié)構(gòu)分為順序存儲(chǔ)和隨機(jī)存儲(chǔ)。
*順序存儲(chǔ):
在計(jì)算機(jī)中用一組地址連續(xù)的存儲(chǔ)單元依次存儲(chǔ)線性表的各個(gè)數(shù)據(jù)元素,稱作線性表的順序存儲(chǔ)結(jié)構(gòu)。 順序存儲(chǔ)結(jié)構(gòu)是存儲(chǔ)結(jié)構(gòu)類型中的一種,該結(jié)構(gòu)是把邏輯上相鄰的節(jié)點(diǎn)存儲(chǔ)在物理位置上相鄰的存儲(chǔ)單元中,即邏輯結(jié)構(gòu)與物理結(jié)構(gòu)一致。
順序存儲(chǔ)的優(yōu)點(diǎn):節(jié)省存儲(chǔ)空間。
原因:分配給數(shù)據(jù)的存儲(chǔ)單元都用來(lái)存放結(jié)點(diǎn)的數(shù)據(jù),結(jié)點(diǎn)之間的邏輯關(guān)系沒(méi)有占用額外的存儲(chǔ)空間。采用這種方法時(shí),可實(shí)現(xiàn)對(duì)結(jié)點(diǎn)的隨機(jī)存取,即每一個(gè)結(jié)點(diǎn)對(duì)應(yīng)一個(gè)序號(hào),由該序號(hào)可以直接計(jì)算出來(lái)結(jié)點(diǎn)的存儲(chǔ)地址。
順序存儲(chǔ)的缺點(diǎn):不便于修改。 原因:對(duì)結(jié)點(diǎn)的插入、刪除運(yùn)算時(shí),可能要移動(dòng)一系列的結(jié)點(diǎn)。
*隨機(jī)存儲(chǔ):
在計(jì)算機(jī)中用一組任意的存儲(chǔ)單元存儲(chǔ)線性表的數(shù)據(jù)元素(這組存儲(chǔ)單元可以是連續(xù)的,也可以是不連續(xù)的)。
它不要求邏輯上相鄰的元素在物理位置上也相鄰。因此它沒(méi)有順序存儲(chǔ)結(jié)構(gòu)所具有的缺點(diǎn),但也同時(shí)失去了順序表可隨機(jī)存取的優(yōu)點(diǎn)。
延伸閱讀:
二、什么是數(shù)據(jù)結(jié)構(gòu)
數(shù)據(jù)結(jié)構(gòu)是計(jì)算機(jī)存儲(chǔ)、組織數(shù)據(jù)的方式。數(shù)據(jù)結(jié)構(gòu)是指相互之間存在一種或多種特定關(guān)系的數(shù)據(jù)元素的集合。通常情況下,精心選擇的數(shù)據(jù)結(jié)構(gòu)可以帶來(lái)更高的運(yùn)行或者存儲(chǔ)效率。數(shù)據(jù)結(jié)構(gòu)往往同高效的檢索算法和索引技術(shù)有關(guān)。