从顺序表中删除一个元素
时间: 2023-11-06 22:06:06 浏览: 125
删除顺序表中的元素
3星 · 编辑精心推荐
顺序表是一种线性数据结构,元素在内存中连续存储。删除顺序表中的元素可以分为两种情况:删除指定位置的元素和删除指定值的元素。
1. 删除指定位置的元素
假设要删除顺序表中下标为 i 的元素,可以将 i+1 到 n-1 的元素全部往前移动一个位置,覆盖掉要删除的元素。
具体实现过程如下:
```C++
void deleteElement(int a[], int& n, int i) {
if (i < 0 || i >= n) { // 判断下标是否越界
return;
}
for (int j = i; j < n - 1; j++) {
a[j] = a[j + 1]; // 将后面的元素往前移
}
n--; // 修改顺序表的长度
}
```
2. 删除指定值的元素
假设要删除顺序表中值为 x 的元素,可以遍历顺序表,找到第一个值为 x 的元素,然后将 i+1 到 n-1 的元素全部往前移动一个位置,覆盖掉要删除的元素。
具体实现过程如下:
```C++
void deleteElement(int a[], int& n, int x) {
int i = 0;
while (i < n && a[i] != x) { // 查找值为 x 的元素
i++;
}
if (i == n) { // 如果没有找到,直接返回
return;
}
for (int j = i; j < n - 1; j++) {
a[j] = a[j + 1]; // 将后面的元素往前移
}
n--; // 修改顺序表的长度
}
```
需要注意的是,删除元素后,顺序表的长度要相应地减小。
阅读全文