数组线性表的删除操作
时间: 2024-06-10 19:02:26 浏览: 4
数组线性表的删除操作可以分为两种情况:删除指定位置的元素和删除指定值的元素。
1. 删除指定位置的元素:
首先需要判断待删除的位置是否合法,即是否越界。如果位置合法,则将该位置后面的所有元素向前移动一个位置,覆盖待删除的元素。
代码实现如下:
```
void delete_element(int arr[], int len, int pos) {
if (pos < 0 || pos >= len) { // 判断是否越界
printf("删除位置不合法!");
return;
}
for (int i = pos; i < len - 1; i++) {
arr[i] = arr[i+1]; // 将后面的元素向前移动一位
}
len--; // 数组长度减一
}
```
2. 删除指定值的元素:
遍历整个数组,找到待删除的元素,并将该元素后面的所有元素向前移动一个位置。
代码实现如下:
```
void delete_value(int arr[], int len, int val) {
int pos = -1; // 初始化待删除元素的位置
for (int i = 0; i < len; i++) {
if (arr[i] == val) {
pos = i;
break;
}
}
if (pos == -1) { // 如果待删除元素不存在,则直接返回
printf("待删除元素不存在!");
return;
}
for (int i = pos; i < len - 1; i++) {
arr[i] = arr[i+1]; // 将后面的元素向前移动一位
}
len--; // 数组长度减一
}
```
需要注意的是,以上两种删除操作只能删除第一个符合条件的元素,如果要删除所有符合条件的元素,需要在循环中继续查找并删除。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.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)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)