線性表(list):零個或多個資料元素的有限序列。
重點:有順序、有限
例如有乙個線性表:a, b, c, d, ···, z
則:
所有線性表元素的個數n(n>=0)為線性表的長度,n=0時,為空表。
在複雜的線性表中,乙個資料元素可以是若干個資料項組成,例如花名冊。
線性表的資料儲存結構,指的是用一段位址連續的儲存單元依次儲存線性表的資料元素。
順序儲存結構的三個重要屬性:
從零開始,第i個元素的的儲存位置為i-1。
儲存器中每乙個儲存單元都有自己的編號,這個編號稱為位址。
優點:
缺點:
有時,頭結點不儲存任何資訊,有時可以儲存線性表的長度等資訊。
插入或刪除資料越頻繁,單鏈表的優勢越大。
頭指標
頭結點
讀:
指標後移,就是說從鍊錶的頭結點乙個乙個找到指定結點。
插:
指標後移找到指定位置的前乙個節點(n-1)後,將其指標域指向要插入元素的結點(n),然後將插入元素的指標指向下一元素(n+1).
刪:
類似插入,反向操作。
儲存分配方式
時間效能
插入刪除
空間效能
理解
對於沒有指標的語言,使用陣列來實現鍊錶,就形成了靜態鍊錶。
也是說,將陣列的每個元素分成兩個資料域,乙個(data)用來儲存資料,乙個(cur)用來儲存下一元素的下標。
靜態鍊錶需要陣列長度大一些方便插入資料。
我個人理解就是乙個二維陣列:
array = [
0 => ["資料","下一資料的key"],
...];
用靜態模擬動態鍊錶結構,需要時申請、無用時釋放。
類似於單鏈表,只不過是在陣列內部完成。
優點
缺點
靜態鍊錶是為了給沒有指標的高階語言設計的一種實現單鏈表能力的方法。
將單鏈表的終端節點的指標端由空指標改為指向頭結點,使整個單鏈表形成乙個還,這種頭尾相接的單鏈表稱為單迴圈鍊錶,簡稱單鏈表。
貪吃蛇在單鏈表的每個結點中在新增乙個指向其前驅結點的指標域。
當然,將雙向鍊錶首尾相接就形成了雙向迴圈鍊錶。
《大話資料結構》 線性表
created by pengxiangzhou on 2021 1 24.include ifndef c ds linear list h define c ds linear list h endif c ds linear list h 線性表 順序儲存結構 順序儲存結構的三個屬性 陣列da...
大話資料結構 線性表
線性表是零個或多個資料元素的有限序列。線性表的抽象資料型別定義如下 adt 線性表 list data 線性表的資料物件集合為,每個元素的型別均為datatype。其中,除第乙個元素a1外,每乙個元素有且只有乙個直接前驅元素,除了最後乙個元素an外,每乙個元素有且只有乙個直接後繼元素。資料元素之間的...
大話資料結構 線性表 2
線性表的順序儲存結構最大的缺點是插入和刪除時需要移動大量資料,這顯然就需要消耗時間。本節討論的鏈式儲存結構可以很好滴解決這個問題。線性表的鏈式儲存結構的特點是用一組任意的儲存單元儲存線性表的資料元素,這些儲存單元可以使連續的,也可以是不連續的。這就意味著,這些資料元素可以存在記憶體未被占用的任意位置...