在顺序表上实现插入和删除的算法。
时间: 2024-03-14 17:04:48 浏览: 17
插入算法:
```c
#define MAXSIZE 100 // 定义顺序表的最大长度
void insertElem(int* list, int pos, int val, int* length){
if(pos < 1 || pos > *length + 1){
printf("Invalid position!\n");
return;
}
if(*length == MAXSIZE){
printf("The list is full!\n");
return;
}
for(int i = *length; i >= pos; i--){
list[i] = list[i-1];
}
list[pos-1] = val;
(*length)++;
}
```
删除算法:
```c
void deleteElem(int* list, int pos, int* length){
if(pos < 1 || pos > *length){
printf("Invalid position!\n");
return;
}
for(int i = pos-1; i < *length-1; i++){
list[i] = list[i+1];
}
(*length)--;
}
```
其中,`list`为顺序表数组指针,`pos`为要插入或删除的位置,`val`为要插入的值(仅插入算法需要),`length`为顺序表当前长度的指针。