總結
線性表可以用順序表或鍊錶儲存
兩種儲存表示各有哪些主要優缺點?
線性表存在唯一的乙個稱作「第乙個」的元素;
存在唯一的乙個稱作「最後乙個」的元素;
除第乙個元素外,集合中的每乙個元素均只有乙個直接前趨;
除最後乙個元素外,集合中的每個元素均只有乙個直接後趨。
**如下(示例):
#define maxsize 100
typedef
int datatype;
typedef
struct
seqlist;
插入資料
刪除資料
**如下(示例):
typedef
int datatype;
typedef
struct nodelinknode,
*linklist;
**如下(示例):
插入資料
int
insert
(linknode* l,
int k,
int elem)
刪除資料
int
remove
(linknode* l,
int k)
兩種儲存表示的優缺點:
順序表的優點:
1.從時間上講,它不但可以順序訪問,還可以直接訪問,訪問速度快;
2.從空間上講,它的儲存利用率高,不需要指標。
順序表缺點:
1.從時間上講,順序表在插入或刪除時,如果需要保持原來的順序,必須移動平均一半的元素,因此更新速度慢;
2.從空間上講,如果採用靜態分配的儲存結構,一旦儲存陣列的空間已滿,不能擴充,再插入新元素將導致溢位。
鍊錶的優點:
1.從時間上講,插入或刪除操作不需要大量移動元素,只需要修改指標,更新速度快;
2.從空間上講,鍊錶基本沒有滿和溢位的問題,只要記憶體可以分配結點,就可以擴充。
鍊錶的缺點:
1.從時間上講,鍊錶只能順序訪問,所以查詢乙個元素平均要搜尋半個表,訪問速度慢;
2.從空間上講,每個元素需附加乙個指標,儲存利用率較低;
此外,鍊錶的單線聯絡的特性,如果操作不當,導致斷鏈,將會丟失後面的所有的資料。
順序表與鍊錶的區別
原理 順序表儲存是將資料元素放到一塊連續的記憶體儲存空間,相鄰資料元素的存放位址也相鄰 邏輯與物理統一 優點 1 空間利用率高。區域性性原理,連續存放,命中率高 2 訪問速度高效,通過下標來直接儲存。缺點 1 插入和刪除比較慢,比如 插入或者刪除乙個元素時,整個表需要遍歷移動元素來重新排一次順序。2...
順序表與鍊錶
單向鍊錶 雙向鍊錶 迴圈鍊錶 插入刪除過程要注意,初始指標應指向鍊錶尾節點 若當插入到頭前時,找不到前驅節點 當在更新尾節點時需要更新頭指標 鍊錶排序使用氣泡排序最為適合 資料結構 結構定義 結構操作 include include include include define malloc2 my...
順序表與鍊錶
它是n個具有相同特性的資料元素的有限序列。線性表是一種在實際中廣泛使用的資料結構,常見的線性表 順序表 鍊錶 棧 佇列 字串 邏輯上連續,物理上不一定連續 儲存方式 通常是陣列或者鏈式結構 順序表是用一段實體地址連續的儲存單元依次儲存資料元素的線性結構,一般情況下採用陣列儲存。在陣列上完成資料的增刪...