删除顺序表中所有值为x的元素
时间: 2023-10-18 07:18:23 浏览: 198
程序编辑实例
删除顺序表中所有值为x的元素,可以遍历顺序表,将不等于x的元素依次移动到前面,最后修改顺序表的长度即可。
具体实现可以参考以下代码:
```c
void deleteAllX(SeqList* list, DataType x) {
int i, j;
for (i = 0, j = 0; i < list->length; i++) {
if (list->data[i] != x) {
list->data[j++] = list->data[i];
}
}
list->length = j;
}
```
其中,`SeqList`为顺序表的结构体,`DataType`为数据类型,`list->data`表示顺序表的数据存储区,`list->length`表示顺序表的长度。
该函数遍历顺序表,如果当前元素不等于x,则将该元素移动到前面(即将该元素赋值给下标为j的位置),同时将j加1。最后修改顺序表的长度为j,即可删除所有值为x的元素。
阅读全文