将值输入顺序表C语言
时间: 2024-09-13 09:19:07 浏览: 41
在C语言中,我们可以创建一个动态大小的顺序表(也称作数组)来存储值。以下是一个简单的顺序表实现,它可以动态增加容量,当你试图插入超过当前容量的值时:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int* data; // 存储数据的指针
size_t length; // 当前元素的数量
size_t capacity; // 元素的最大容量
} List;
// 创建一个新的顺序表,初始容量为50
List* create_list() {
List* list = (List*) malloc(sizeof(List));
list->data = (int*) malloc(50 * sizeof(int)); // 初始分配50个位置
list->length = 0;
list->capacity = 50;
return list;
}
// 插入值到列表
void insert(List* list, int value) {
if (list->length == list->capacity) { // 如果满了
list->capacity *= 2; // 扩容一倍
list->data = (int*) realloc(list->data, list->capacity * sizeof(int));
}
list->data[list->length++] = value; // 插入并更新长度
}
// 测试
int main() {
List* my_list = create_list();
insert(my_list, 1);
insert(my_list, 2);
// ... 更多插入操作
free(my_list->data); // 释放内存
free(my_list); // 释放结构体本身
return 0;
}
阅读全文