利用c语言线性表编写删除顺序表中重复元素
时间: 2024-09-28 13:08:07 浏览: 46
在C语言中,我们可以使用数组或者链表来表示线性表。如果你想要从顺序表(数组)中删除重复的元素,可以采用哈希表或者双指针法来进行。这里我将给出一种简单的基于数组的解决方案:
```c
#include <stdio.h>
#define ARRAY_SIZE 100
void removeDuplicates(int arr[], int n) {
if (n == 0 || n == 1) return; // 如果数组长度小于等于1,无需操作
int i = 0, j = 1; // 定义两个指针,i用于存储不重复元素的位置,j遍历整个数组
while (j < n) {
if (arr[j] != arr[i]) { // 如果当前元素与已存储的元素不同
i++; // 移动已存位置指针
arr[i] = arr[j]; // 将新元素放入已存位置
}
j++;
}
// 更新数组大小
arr[i + 1] = '\0'; // 最后一个元素置空作为结束标记,也可以直接设为0,看需求
printf("Modified array with no duplicates: ");
for (int k = 0; k <= i; k++) {
printf("%d ", arr[k]);
}
}
int main() {
int data[] = {1, 2, 2, 3, 4, 4, 5};
int n = sizeof(data) / sizeof(data[0]);
removeDuplicates(data, n);
return 0;
}
```
在这个示例中,我们遍历整个数组,如果遇到的新元素与已存储的元素不同,就将其移动到已排序的部分。最后,数组的大小会自动调整,以适应不重复的元素。
阅读全文