顺序表的插入删除完整代码
时间: 2023-12-27 19:21:50 浏览: 31
对于顺序表的插入和删除操作,以下是完整的代码实现:
插入操作:
```
void ListInsert(SqList &L, int i, ElemType e) {
if (i < 1 || i > L.length + 1) {
exit(ERROR);
}
if (L.length >= L.listsize) {
ElemType *newbase = (ElemType *)realloc(L.elem, (L.listsize + LISTINCREMENT) * sizeof(ElemType));
if (!newbase) {
exit(OVERFLOW);
}
L.elem = newbase;
L.listsize += LISTINCREMENT;
}
ElemType *p = &(L.elem[i - 1]);
for (ElemType *q = &(L.elem[L.length - 1]); q >= p; --q) {
*(q + 1) = *q;
}
*p = e;
++L.length;}
```
删除操作:
```
void ListDelete(SqList &L, int i, ElemType &e) {
if (i < 1 || i > L.length) {
exit(ERROR);
}
ElemType *p = &(L.elem[i - 1]);
e = *p;
ElemType *q = L.elem + L.length - 1;
for (++p; p <= q; ++p) {
*(p - 1) = *p;
}
--L.length;
}
```
需要注意的是,这里的`SqList`是一个结构体,包含了顺序表的元素数组`elem`、当前长度`length`和总容量`listsize`等信息。同时,`ElemType`是顺序表中存储的元素类型,可以根据实际情况进行定义。
相关推荐
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)