s1線性表的基本概念:
1)有而且只有乙個「第一元素」。
2)有而且只有乙個「最後元素」。
3)除第一元素之外,其他元素都有唯一的直接前驅。
4)除最後元素之外,其他元素都有唯一的直接後繼。
s2計算公式:
若第乙個元素的位址是a,每個元素占用的儲存空間為d,則陣列的第i個元素的位址可以用如下公式計算:
loc(i)=a+(i-1)*d
s3順序表元素的插入
1)空表的情況:只能在下標為[1]的地方插入
2)元素未滿的情況:可以插入指定的位置。(前提:如下圖,不能插入下標為[6]的位置)
假設:我們就以上圖為例,如果要將95插入到下標為[2]的位置的時候,這個時候我們需要考慮的是,要
把下標為[2]的位置的空間騰出來給將要插入的元素95所使用,如果做到這一點呢?
解:我們可以用過「搬家」的辦法解決這個問題,就是把下標為[4]的元素向後移動,移動到下標為[5]的位置,
然後將下標為[3]的元素移動到下標為[4]的地方,最後將下標為[2]的元素移動到下標為3的位置,這樣我們
就把下標為[2]的空間騰出來了,接下來把元素95放入到下標為[2]的位置即可,此時就元素插入成功了。
3)空間已滿的情況:這時候就需要再分配一塊空間,然後進行插入。(
前提:不能插入下標為[8]以及之後的位置)
具體如何插入辦法,可以參照2)
s4順序表元素的刪除
1)空表的情況:刪除失敗。
2)表中有元素的情況:(
前提:不能刪除下標[4]以後的位置)
假設:我們就以上如為例,如果要刪除下標為[3]的元素,那麼跟插入有乙個相似的地方就是,都需要「搬家」,
只要把下標為[4]的元素移動到下標為[3]的位置即成功刪除了下標為[3]的元素。
s5順序表部分**
線性表線性(順序)儲存結構
實現順序表的曾刪查操作 元素結構體 define maxsize 100 線性表的最大長度 typedef int elemtype elemtype為線性表元素的型別 typedef struct sequenlist 插入操作 bool insertinseqlist sequenlist l,...
線性表的順序儲存 線性表的順序儲存結構
1,本文實現乙個線性表 2,順序儲存定義 1,線性表的順序儲存結構,指的是用一段位址連續的儲存單元依次儲存線性表中的資料元素 2,在 c 中可以用乙個陣列作為介質來儲存資料元素 3,設計思路 1,可以用一維陣列實現順序儲存結構 1,儲存空間 t m array 2,當前長度 int m length...
線性表順序儲存結構
優點 1.無需為表示表中元素之間的邏輯關係而增加額外的儲存空間。2.可以快速的訪問表中任意位置的元素 缺點 1.插入和刪除操作需要移動大量的元素 2.當線性表長度變化較大時,難以確定儲存空間的大小 3.造成儲存空間的 碎片 linelist.h檔案 ifndef line list h define...