一、顺序表 1、在下标i处插入值为x的元素; 2、删除所有奇数;===【【【强调:只能用一重循环,且【不能用】删除单个元素的函数来实现重复删除
时间: 2023-05-21 15:07:31 浏览: 40
1、在下标 i 处插入值为 x 的元素,可以使用以下代码:
```c
int n; // 顺序表长度
int a[MAXN]; // 定义顺序表,MAXN为顺序表最大长度
// 在下标i处插入值为x的元素
void insert(int i, int x) {
if (n == MAXN) { // 顺序表已满,无法插入
printf("Error: the list is full.\n");
return;
}
if (i < 1 || i > n + 1) { // 插入位置i不合法
printf("Error: the position is invalid.\n");
return;
}
for (int j = n; j >= i; j--) { // 从后往前遍历,将元素后移
a[j + 1] = a[j];
}
a[i] = x; // 在i处插入x
n++; // 顺序表长度增加1
return;
}
```
2、删除所有奇数,可以使用以下代码:
```c
// 删除所有奇数
void delete_odd() {
int k = 0; // 维护新长度
for (int i = 1; i <= n; i++) { // 遍历顺序表
if (a[i] % 2 == 0) { // 如果元素为偶数,记录到新位置
k++; // 新长度加1
a[k] = a[i];
}
}
n = k; // 更新顺序表长度
return;
}
```
其中,只用了一重循环,同时避免了使用删除单个元素的函数,实现了重复删除的过程。
相关推荐
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_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)