顺序表插入元素C语言代码
时间: 2024-09-29 16:05:20 浏览: 32
C语言顺序表的实现代码
5星 · 资源好评率100%
在C语言中,顺序表(也称为数组)通常会有一个固定的大小,如果需要插入元素,你需要考虑表是否已满以及如何动态扩容。这里是一个简单的顺序表插入元素的例子,假设我们有一个整数类型的顺序表:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int* data;
size_t size;
size_t capacity;
} List;
// 初始化顺序表
List* init_list() {
List* list = (List*)malloc(sizeof(List));
if (!list) {
printf("Memory allocation failed.\n");
return NULL;
}
list->data = malloc(1 * sizeof(int)); // 初始容量为1
list->size = 0;
list->capacity = 1;
return list;
}
// 插入元素到列表末尾,检查是否需要扩容
void insert(List* list, int value) {
if (list->size == list->capacity) { // 如果满了
list->capacity *= 2; // 扩容一倍
list->data = realloc(list->data, list->capacity * sizeof(int));
if (!list->data) {
printf("Memory reallocation failed.\n");
return;
}
}
list->data[list->size++] = value; // 插入元素并更新元素计数
}
// 示例
int main() {
List* my_list = init_list();
if (my_list) {
insert(my_list, 5);
insert(my_list, 10);
insert(my_list, 15); // 添加更多元素
for (size_t i = 0; i < my_list->size; i++) {
printf("%d ", my_list->data[i]);
}
free(my_list->data); // 清理内存
free(my_list);
}
return 0;
}
```
阅读全文