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