線性表儲存結構1 順序儲存結構

2021-09-26 13:44:05 字數 1536 閱讀 5842

線性表的順序儲存結構,值得是用一段位址連續的儲存單元依次儲存線性表的資料元素。

線性表的順序儲存結構,說白了,就是在記憶體中找了塊兒地放,通過佔位的形式,把一定記憶體空間給佔了,然後把相同資料型別的資料元素依次存放在這塊空地中。

既然線性表的每個資料元素型別都相同,所以可以用一維陣列來實現順序儲存結構,即把第乙個資料元素放在陣列下標為0的位置,接著把線性表相鄰的元素儲存在陣列中相鄰的位置。

線性表的順序儲存結構需要三個屬性:

儲存空間的起始位置:陣列data,它的儲存位置就是儲存空間的儲存位置;

線性表的最大儲存容量:陣列長度maxsize;

線性表的當前長度:length

由於每個資料元素,不管它是整型、實型、還是字元型,它都是需要占用一定的儲存單元空間的。

假設占用的是c個儲存單元,那麼線性表中第i+1個資料元素的儲存位置和第i個資料元素的儲存位置滿足:

l oc

(ai+

1)=l

oc(a

i)+c

loc(a_)=loc(a_i)+c

loc(ai

+1​)

=loc

(ai​

)+c

所以,對於第i個資料元素a

ia_i

ai​的儲存位置可以由a−1

a-1a−

1t推算得出:

l oc

(ai)

=loc

(a1)

+(i−

1)∗c

loc(a_i)=loc(a_1)+(i-1)*c

loc(ai

​)=l

oc(a

1​)+

(i−1

)∗c插入演算法的思路:

如果插入位置不合理,丟擲異常;

如果線性表長度大於等於陣列長度,則丟擲異常,或者動態增加容量;

從最後乙個元素開始向前遍歷到第i個位置,分別將它們都向後移動乙個位置;

將要插入元素填入到位置i處;

表長加1. 例:

來了乙個人要插在隊伍中的第三位,這時,第三位及第三位之後的,都要向後移動乙個位置。

刪除演算法的思路:

如果插入位置不合理,丟擲異常;

取出刪除元素

從刪除元素位置開始遍歷到最後乙個元素位置,分別將它們都向前移動乙個位置;

表長減1.

線性表 順序儲存結構

s1線性表的基本概念 1 有而且只有乙個 第一元素 2 有而且只有乙個 最後元素 3 除第一元素之外,其他元素都有唯一的直接前驅。4 除最後元素之外,其他元素都有唯一的直接後繼。s2計算公式 若第乙個元素的位址是a,每個元素占用的儲存空間為d,則陣列的第i個元素的位址可以用如下公式計算 loc i ...

線性表順序儲存結構

優點 1.無需為表示表中元素之間的邏輯關係而增加額外的儲存空間。2.可以快速的訪問表中任意位置的元素 缺點 1.插入和刪除操作需要移動大量的元素 2.當線性表長度變化較大時,難以確定儲存空間的大小 3.造成儲存空間的 碎片 linelist.h檔案 ifndef line list h define...

線性表 順序儲存結構

該系列文章參考 資料結構 標頭檔案 sqlist.h ifndef sqlist h define sqlist h template class sqlistclass 順序錶類 endif 原始檔 sqlist cpp include include sqlist.h const int max...