線性表的順序(儲存)表示——順序表
用一組位址連續的儲存單元依次儲存線性表的資料元素
位序相繼的兩個資料元素儲存位置相鄰
以線性表中第乙個元素的儲存位置作為線性表的起始儲存位址,稱為基位址。
線性表中所有元素的儲存位址都可以通過基位址得到
★順序表是具有順序結構的線性表
順序表的儲存結構定義為:
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...