資料結構複習(二)線性表(1)順序表

2021-10-04 18:04:42 字數 1456 閱讀 9242

0.1 線性表定義

具有相同資料型別的n個資料元素的有限序列

一般表示為l(a1,a2,a3…an)

注意點:

儲存資料型別都是相同的

是有限的

是乙個序列,即儲存的內容是有次序的

0.2前驅與後繼

除第乙個元素(表頭元素 )外,每個元素都有且僅有乙個前驅。

除最後乙個元素(表尾元素 )外,每隔元素都有且僅有乙個後繼。

0.3線性表的特點

① 表中元素的個數是有限的

②表中元素有其先後順序,是具有邏輯上的順序性的

③表中元素都是資料元素(單獨的)

④表中的元素資料型別是相同的

線性表是乙個邏輯結構型別,通過不同的物理結構實現,得到順序表和煉表

1.1順序表的定義

用一組位址連續的儲存單元一起儲存線性表表中的資料元素,使得邏輯相鄰的資料元素,在物理位置上也相鄰

即 物理順序與邏輯順序相同

具體實現可分為靜態分配和動態分配

2.1定義

靜態分配:陣列的大小提前確定

#define maxsize 50//定義大小(固定)

typedef structsqlist;

動態分配:陣列的大小可以變化

#define initsize 100

typedef structseqlist;

malloc:申請記憶體空間

free:釋放記憶體空間

l.data=(elemtype *)data.malloc(sizeof(elemtype)*initsize);

//elemtype是

順序表特點:

主要:隨機訪問,通過首位址和元素序號可以在實踐o(1)內找到指定的元素

儲存密度高,每個結點只儲存資料元素

邏輯相鄰的元素物理位置也相鄰,所以插入、殺出元素時需要挪動很多元素

拓展容量不方便

2.2初始化

靜態分配

void initlist(sqlist &l)

//增加陣列的長度

void increasesize(seqlist &l,int len)

l.data[i-1]=e;

l.length++;

return true;}

2.4刪除

o(n)

從前向後刪除

//需要被引用的資料要用指標型別

bool listdelete(sqlist &l,int i,int &e)

(2)按值查詢

o(n)

//找到後返回位序

int getbyvalue(seqlist &l,int e)

return 0;

}

資料結構複習二 線性表

寫在前面 考完離散就剩兩天覆習資料結構,還有七章,我可能要沒了 衝衝衝!定義是 由n 0 個資料特性相同的元素構成的有限序列n 0時為空表 非空線性結構的特點 1 第乙個 元素唯一 2 最後乙個 元素唯一 3 除第乙個之外,資料結構中的每個資料元素均只有乙個前驅 4 除最後乙個之外,每個資料元素均只...

資料結構(二) 線性表的順序表

線性表就是一對一的關係。線性表分為,順序表和煉表 即是按物理結構劃分的 順序表是實體地址相鄰的,看起來像是陣列的定義。不過,順序表和陣列也有不同。順序表的屬性是 有儲存空間的起始位置data,即是乙個陣列的首位址 這也就是陣列了 線性表有乙個變數標記最大儲存容量,maxsize 有乙個變數標記當前的...

資料結構(二) 線性表

線性表是最簡單最常用的資料結構,是一種典型的線性儲存結構。定義 線性表是由n n 0 個資料元素 結點 a1 a 2 an 組成的有限序列。n為表的長度。當n 0,為 空表 n 0時,為 a1,a 2,an 邏輯特徵 非空的線性表只有乙個頭結點,也只有乙個終結點,頭結點只有乙個直接後繼結點,而沒有直...