考研資料結構 第二章 線性表 順序表

2021-10-05 11:16:48 字數 1515 閱讀 8175

(1)線性表的順序儲存(物理儲存結構)又稱順序表。它是用一組位址連續的儲存單元依次儲存線性表中的資料元素,從而使得邏輯上相鄰的兩個元素在物理位置上也相鄰。

(2)順序表的特點:

表中的元素的邏輯順序和物理順序相同。插入和刪除元素需要移動大量的元素;

隨機訪問。即通過首位址和元素序號找到對應元素的時間恒為o(1);

注:線性表中的元素的位序是從1開始的,而陣列中元素的下標是從0開始的。

(3)順序表的描述為

靜態分配:

#define maxsize 50                 //定義表的最大長度

typedef struct sqlist; //順序表的型別定義

動態分配:

#define initsize 100            //表長度的初始定義

typedef structseqlist; //動態分配定義

c語言的初始動態分配的語句為:

l.data = (elemtype*) malloc ( sizeof(elemtype) * initsize);
(1)插入操作

//c語言c99之前是沒有布林型別定義,但是考試不要求完全實現,所以這裡使用bool返回型別是沒有問題的

//在順序表中的第i個位置插入元素

bool insertlist(sqllist &l,int i,elemtype e)

if( l.length >= maxsize )

for( int j = l.length - 1; j >= i - 1; j-- )

l.data[i - 1] = e;

l.length++;

return true;

}//平均時間複雜o(n)

(2)刪除操作

//刪除順序表中第i個元素,成功返回元素e,失敗返回false

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

e = l.data[i - 1];

for(int j = i - 1;j <= l.length - 2;j ++)

l.length--;

return true;

}//平均時間複雜o(n)

(3)按值查詢

//按值在順序表中查詢元素.返回元素位序

int locateelem(sqlist l,elemtype e)

return 0;

}//平均時間複雜o(n)

資料結構 第二章 線性表

線性表 是具有相同型別的n n 0 個元素的有限序列,其中n為表長,當n 0時,該錶為空表。線性表的特點 線性表的九種基本操作 initlist l 初始化表。構造乙個空的線性表。destroylist l 銷毀操作。銷毀線性表,並釋放線性表l所占用的記憶體空間。locateelem l,e 按值查...

資料結構 第二章 線性表

線性表 順序儲存 鏈式儲存 順序表單鍊錶 雙鏈表迴圈鍊錶 靜態鍊錶 陣列指標實現 借助陣列實現 定義 線性表是具有相同資料型別的n n 0 個資料元素的有限序列,其中n為表長,當n 0時該線性表是乙個空表。特點 1 個數有限 2 表中元素具有邏輯上的順序性。3 表中元素都是資料元素,每個元素都是單個...

資料結構 第二章 線性表

資料結構 第二章 線性表 模板 引數化的多型 引數化多型性 講程式所處理的物件型別引數化,使一段 可用於處理多種不同型別的物件 採用模板程式設計 提供 共享機制 邏輯功能相同,資料型別不同 定義格式 template 尖括號內又稱模板形參表 返回值型別 函式名 參數列 如果變數被引數化,則返回值型別...