線性表之順序儲存結構

Galois發表於2020-09-10

線性表

零個或多個資料元素的有限序列。
元素之間是有順序的,有先來後到的。第一個元素無前驅,最後一個元素無後繼,其他每個元素都有且只有一個前驅和後繼。
線性表元素的個數n(n\geqslant0)定義為線性表的長度,當n=0時,稱為空表。

描述順序儲存結構需要三個屬性:

  • 儲存空間的起始位置:陣列 data,它的儲存位置就是儲存空間的儲存位置。
  • 線性表的最大儲存容量:陣列長度 MaxSize。
  • 線性表的當前長度:length。

陣列的長度和線性表的長度

陣列的長度是存放線性表的儲存空間的長度,儲存分配後這個量一般是不變的。
線性表的長度是線性表中資料元素的個數,隨著線性表插入和刪除操作的進行,這個量是變化的。在任意時刻,線性表的長度應該小於等於陣列的長度。

FQ8y0a7KBf.png!large

儲存器中的每個儲存單元都有自己的編號,這個編號稱為地址。

線性表中第i+1個資料元素的儲存位置和第i個資料元素的儲存位置滿足下列關係:

LOC(a_i+1)=LOC(a_i)+c

所以對於第i個資料元素a_1推算得出:

LOC(a_i)=LOC(a_1)+(i-1)c

zuhM1huNRW.png!large

對每個線性表位置的存入或者取出資料,對計算機來說都是相等的時間,用演算法中的時間複雜度的概念來說,它的存取時間效能為 O(1)。
具有這一特點的儲存結構稱為「隨機存取結構。」

插入和刪除的時間複雜度

插入到最後一個位置或刪除最後一個元素的時間複雜度為 O(1)
插入到第一個位置或刪除第一個元素的時間複雜度為 O(n)
平均移動次數和最中間的那個元素的移動次數相等,為 (n-1)/2

線性表順序儲存結構的優缺點

優點

無須為表示表中元素之間的邏輯關係而增加額外的儲存空間
可以快速地存取表中任一位置的元素

缺點

插入和刪除操作需要移動大量元素
當線性表長度變化較大時,難以確定儲存空間的容量
造成儲存空間的“碎片”

本作品採用《CC 協議》,轉載必須註明作者和本文連結
不要試圖用百米衝刺的方法完成馬拉松比賽。

相關文章