數(shù)據(jù)的存儲結(jié)構(gòu)包括哪四種

數(shù)據(jù)的存儲結(jié)構(gòu)包括哪四種

推薦教程:windows運維教程

存儲結(jié)構(gòu)分四類:順序存儲、鏈接存儲、索引存儲 和 散列存儲。

  順序結(jié)構(gòu)和鏈接結(jié)構(gòu)適用在內(nèi)存結(jié)構(gòu)中。

  索引結(jié)構(gòu)和散列結(jié)構(gòu)適用在外存與內(nèi)存交互結(jié)構(gòu)。

一、順序存儲

  在計算機中用一組地址連續(xù)的存儲單元依次存儲線性表的各個數(shù)據(jù)元素,稱作線性表的順序存儲結(jié)構(gòu)。

特點:

  1、隨機存取表中元素。

  2、插入和刪除操作需要移動元素。

二、鏈接存儲

  在計算機中用一組任意的存儲單元存儲線性表的數(shù)據(jù)元素(這組存儲單元可以是連續(xù)的,也可以是不連續(xù)的)。它不要求邏輯上相鄰的元素在物理位置上也相鄰.因此它沒有順序存儲結(jié)構(gòu)所具有的弱點,但也同時失去了順序表可隨機存取的優(yōu)點。

特點:

  1、比順序存儲結(jié)構(gòu)的存儲密度小 (每個節(jié)點都由數(shù)據(jù)域和指針域組成,所以相同空間內(nèi)假設(shè)全存滿的話順序比鏈?zhǔn)酱鎯Ω?。
  2、邏輯上相鄰的節(jié)點物理上不必相鄰。
  3、插入、刪除靈活 (不必移動節(jié)點,只要改變節(jié)點中的指針)。
  4、查找結(jié)點時鏈?zhǔn)酱鎯σ软樞虼鎯β?br />  5、每個結(jié)點是由數(shù)據(jù)域和指針域組成。

三、索引存儲

  除建立存儲結(jié)點信息外,還建立附加的索引表來標(biāo)識結(jié)點的地址。索引表由若干索引項組成。

特點:

  索引存儲結(jié)構(gòu)是用結(jié)點的索引號來確定結(jié)點存儲地址,其優(yōu)點是檢索速度快,缺點是增加了附加的索引表,會占用較多的存儲空間。

四、散列存儲

  散列存儲,又稱hash存儲,是一種力圖將數(shù)據(jù)元素的存儲位置與關(guān)鍵碼之間建立確定對應(yīng)關(guān)系的查找技術(shù)。

  散列法存儲的基本思想是:由節(jié)點的關(guān)鍵碼值決定節(jié)點的存儲地址。散列技術(shù)除了可以用于查找外,還可以用于存儲。

特點:

  散列是數(shù)組存儲方式的一種發(fā)展,相比數(shù)組,散列的數(shù)據(jù)訪問速度要高于數(shù)組,因為可以依據(jù)存儲數(shù)據(jù)的部分內(nèi)容找到數(shù)據(jù)在數(shù)組中的存儲位置,進而能夠快速實現(xiàn)數(shù)據(jù)的訪問,理想的散列訪問速度是非常迅速的,而不像在數(shù)組中的遍歷過程,采用存儲數(shù)組中內(nèi)容的部分元素作為映射函數(shù)的輸入,映射函數(shù)的輸出就是存儲數(shù)據(jù)的位置,這樣的訪問速度就省去了遍歷數(shù)組的實現(xiàn),因此時間復(fù)雜度可以認(rèn)為為O(1),而數(shù)組遍歷的時間復(fù)雜度為O(n)。

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點贊14 分享