编写一个算法一个线性表采用顺序存储结构,若其中所有元素为整数,删除数据值在x到y之间的所有元素
时间: 2023-05-11 21:01:55 浏览: 123
数据结构对元素类型为整型的顺序存储的线性表进行插入、删除和查找操作.doc
可以使用双指针法,将符合条件的元素删除。具体实现如下:
1. 定义两个指针i和j,初始值都为0。
2. 从头开始遍历线性表,如果当前元素的值不在x到y之间,则将其复制到i指向的位置,并将i指针向后移动一位。
3. 如果当前元素的值在x到y之间,则将j指针向后移动一位,直到找到一个不在x到y之间的元素,然后将其复制到i指向的位置,并将i指针向后移动一位。
4. 重复步骤2和3,直到遍历完整个线性表。
5. 最后将线性表的长度更新为i指针的值。
完整代码如下:
void deleteRange(int* arr, int n, int x, int y) {
int i = 0, j = 0;
while (j < n) {
if (arr[j] < x || arr[j] > y) {
arr[i] = arr[j];
i++;
}
j++;
}
n = i;
}
阅读全文