请你编写一个完整的C语言代码
时间: 2024-09-28 16:13:11 浏览: 27
四大绝招助你编写高效简洁的C语言代码
当然可以,以下是一个简单的C语言代码示例,它实现了前面提到的顺序表去重功能,并使用了动态内存分配。注意,这个代码适用于整数数组:
```c
#include <stdio.h>
#include <stdlib.h>
#define MAX_SIZE 100 // 可调整最大数组大小
typedef struct {
int* data; // 数据指针
int size; // 当前元素个数
int capacity; // 数组容量
} List;
void init_list(List* list) {
list->data = (int*)malloc(MAX_SIZE * sizeof(int));
list->size = 0;
list->capacity = MAX_SIZE;
}
// 添加元素到列表,去除重复
void add_element(List* list, int element) {
if (list->size == list->capacity) { // 扩容
list->capacity *= 2;
list->data = (int*)realloc(list->data, list->capacity * sizeof(int));
}
bool found = false;
for (int i = 0; i < list->size; i++) {
if (element == list->data[i]) {
found = true;
break;
}
}
if (!found) {
list->data[list->size++] = element;
}
}
// 显示列表内容
void print_list(const List* list) {
printf("List after removing duplicates: ");
for (int i = 0; i < list->size; i++) {
printf("%d ", list->data[i]);
}
printf("\n");
}
int main() {
List list;
init_list(&list);
int numbers[] = {3, 5, 5, 5, 5, 7, 8, 8, 8, 9, 9, 11};
int n = sizeof(numbers) / sizeof(numbers[0]);
for (int i = 0; i < n; i++) {
add_element(&list, numbers[i]);
}
print_list(&list);
free(list.data); // 释放内存
return 0;
}
```
运行这段代码会创建一个动态数组,存储给定的数字并移除重复项,然后打印去重后的列表。
阅读全文