線性表筆記之順序表及基本操作

2021-09-17 08:40:35 字數 1854 閱讀 8795

線性表的順序(儲存)表示——順序表

用一組位址連續的儲存單元依次儲存線性表的資料元素

位序相繼的兩個資料元素儲存位置相鄰

以線性表中第乙個元素的儲存位置作為線性表的起始儲存位址,稱為基位址。

線性表中所有元素的儲存位址都可以通過基位址得到

★順序表是具有順序結構的線性表

順序表的儲存結構定義為:

typedef struct

sqlist;

相關的定義如下

# define list_init_zize 100//線性表儲存空間的初始值 

# define listincrement 10 //線性表儲存空間的分配增量

#define overflow 1

#define error -1

#define ok 1

typedef int status;

typedef int elemtype;

//status,elemtype :函式返回值(一般替換int型)

1.建立空表

//建立乙個空的線性表

status createlist(sqlist &l)

2.求線性表的長度

//求線性表的長度

status listlength(sqlist l)

3.判斷是否為滿表

//判斷是否為滿表

bool isfulllist(sqlist l)

4.查詢第i個元素並用e表示其值

//查詢第i個元素並用e表示其值

status find(sqlist l, int i, elemtype e)

5.查詢線性表l中滿足函式的元素的位置

status locateelem_sq(sqlist l, elemtype e, status(*compare)(elemtype, elemtype))

6.在l的第i個位置插入新元素,表長加1

//在l的第i個位置插入新元素,表長加1

status listinsert(sqlist &l, int i, elemtype e)

p = l.elem+i-1;//q為插入位置

for (q=l.elem+l.length-1;q>=p;--q)

*(q + 1) = *q; //插入位置及之後的元素右移

*p = e; //插入e

++l.length; //表長增1

return ok;

}

7.刪除順序表l第i個位置的元素,表長減1

//刪除順序表l第i個位置的元素,表長減1

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

輸入及主函式

void input(sqlist l)

cout << endl;

}void main()

線性表之順序表基本操作

sqheader.h ifndef sqheader h included define sqheader h included 順序表的儲存結構 define maxsize 50 typedef char elemtype typedef struct sqlist endif sqheader...

線性表之順序操作

順序表 陣列a i 有乙個基址a 相當於 a 0 還有下標i,代表第i 個元素,陣列的最大容量,假定宣告乙個陣列為a 10 則該陣列的容量為10 化為指標形式 a i a i 就相當於 要注意的是a是乙個常量,它代表的是陣列的首位址,是不可以發生變化的 關於陣列的擴容,從新給陣列分配空間始終在原有的...

線性表的順序儲存及基本操作

include include define init size 10 線性表初始容量 define increment size 5 當線性表容量不夠時,增加元素之前,線性表增長量 define overflow 5 記憶體分配失敗後的退出代號 typedef struct sequencelis...