(1)線性表的順序儲存(物理儲存結構)又稱順序表。它是用一組位址連續的儲存單元依次儲存線性表中的資料元素,從而使得邏輯上相鄰的兩個元素在物理位置上也相鄰。
(2)順序表的特點:
表中的元素的邏輯順序和物理順序相同。插入和刪除元素需要移動大量的元素;隨機訪問。即通過首位址和元素序號找到對應元素的時間恒為o(1);
注:線性表中的元素的位序是從1開始的,而陣列中元素的下標是從0開始的。
(3)順序表的描述為
靜態分配:
動態分配:#define maxsize 50 //定義表的最大長度
typedef struct sqlist; //順序表的型別定義
c語言的初始動態分配的語句為:#define initsize 100 //表長度的初始定義
typedef structseqlist; //動態分配定義
(1)插入操作l.data = (elemtype*) malloc ( sizeof(elemtype) * initsize);
(2)刪除操作//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)
(3)按值查詢//刪除順序表中第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)
//按值在順序表中查詢元素.返回元素位序
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 尖括號內又稱模板形參表 返回值型別 函式名 參數列 如果變數被引數化,則返回值型別...