線性表的順序表:指的是用一組地址連續的存儲單元,依次存儲線性表的數據元素。
1.基本特徵:
(1)、線性表中的所有元素所佔的存儲空間是連續的(即要求內存中可用存儲單元的地址必須是連續的)。(2)、線性表中各數據元素在存儲空間中是按邏輯順序依次存放的。
即:線性表邏輯上相鄰、物理也相鄰(邏輯與物理統一:相鄰數據元素的存放地址也相鄰),則已知第一個元素首地址和每個元素所佔字節數,則可求出任一個元素首地址。
2,優缺點:
(1)優點:
a、 無須爲表示結點間的邏輯關係而增加額外的存儲空間。
b、 可以方便的隨機存取表中的任一結點。
c、 存儲密度大(=1),存儲空間利用率高。
(2) 缺點:a、 插入和刪除運算不方便,需移動大量元素。
b、 由於要求佔用連續的存儲空間,存儲分配只能按最大存儲空間預先進行,致使存儲空間不能得到充分利用。
c、 表的容量難以擴充。
鏈表存儲:線性表的鏈式存儲:指用一組任意的存儲單元存儲線性表中的數據元素。
1.基本特徵:鏈式存儲時,相鄰數據元素可隨意存放,但所佔存儲空間分兩部分,一部分存放結點值,另一部分存放表示結點間關係的指針。
(1)優點:
a、 插入、刪除操作很方便,可通過修改結點的指針實現,無須移動元素。
b、 方便擴充存儲空間。
(2)缺點:
a、 不能隨機存取元素。
b、 存儲密度小(<1),存儲空間利用率低。
總結:1、 順序表適宜於做查找這樣的靜態操作; 鏈表宜於做插入、刪除這樣的動態操作。
2、若線性表的長度變化不大,且其主要操作是查找,則採用順序表;
若線性表的長度變化較大,且其主要操作是插入、刪除操作,則採用鏈表。