一、定义
1、存储空间一定连续
2、可以进行随机访问
二、代码
1、定义结构体
typedef struct {
datatype *element;
int length;
}sqList, *LPsqList;
2、顺序表初始化
LPsqList CreatesqList() {
LPsqList sql = (LPsqList)malloc(sizeof(sqList));
sql->element = (datatype *)malloc(sizeof(datatype)*maxsize);
sql->length = 0;
return sql;
}
3、插入操作
void insertsqList(LPsqList sql, datatype data) {
int i, count = 0;
if (sql->length == maxsize) {
printf("error:full!");
return;
}
else if (sql->length == 0) {
sql->element[sql->length] = data;
sql->length++;
}
else {
while (sql->element[count] < data) {
count++;
if (count == sql->length - 1) break;
}
}
for (i = sql->length; i >= count; i--) {
sql->element[i + 1] = sql->element[i];
}
sql->element[count] = data;
sql->length++;
}
3、删除操作
void deletesqList(LPsqList sql, int pos) {
int i;
if (pos<1 || pos>sql->length - 1) {
printf("error:wrong pos!");
return;
}
else if (sql->length == 0) {
printf("error:null!");
return;
}
else {
for (i = pos - 1; i < sql->length - 1; i++) {
sql->element[i] = sql->element[i + 1]; //后面覆盖前面
}
sql->length--;
}
}
4、修改操作
void amendList(LPsqList sql,int pos,datatype data){
sql->element[pos-1] = data;
}
5、打印顺序表
void printfsqList(LPsqList sql) {
int i;
for (i = 0; i < sql->length - 1; i++)
printf("%d\t", sql->element[i]);
putchar('\n');
return;
}