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 邏輯特徵 非空的線性表只有乙個頭結點,也只有乙個終結點,頭結點只有乙個直接後繼結點,而沒有直...