用C语言写顺序表建立插入
时间: 2024-10-08 08:04:28 浏览: 37
xianxingbiao.rar_malloc.h_sqlist_sqlist的建立
在C语言中,顺序表是一种基础的数据结构,它通过数组的形式存储元素。以下是创建一个简单的顺序列表并实现插入功能的基本步骤:
```c
#include <stdio.h>
// 定义顺序表结构体
typedef struct {
int *data; // 数据指针
int size; // 当前元素个数
int capacity; // 初始容量
} SeqList;
// 初始化顺序表
SeqList* init_list(int capacity) {
SeqList *list = malloc(sizeof(SeqList));
list->data = malloc(capacity * sizeof(int));
list->size = 0;
list->capacity = capacity;
return list;
}
// 插入元素到顺序表末尾
void insert(SeqList *list, int value) {
if (list->size == list->capacity) { // 列表已满
list->capacity *= 2; // 扩大容量
list->data = realloc(list->data, list->capacity * sizeof(int)); // 重新分配内存
}
list->data[list->size++] = value; // 插入元素
}
// 测试顺序表插入操作
int main() {
SeqList *test_list = init_list(5); // 创建一个初始容量为5的顺序表
// 插入元素示例
insert(test_list, 10);
insert(test_list, 20);
insert(test_list, 30);
for (int i = 0; i < test_list->size; i++) {
printf("%d ", test_list->data[i]); // 打印列表内容
}
free(test_list->data);
free(test_list);
return 0;
}
```
在这个例子中,我们首先定义了一个顺序列表结构体`SeqList`,包含了数据指针、当前大小和初始容量。然后提供了初始化函数`init_list`用于创建新的列表,以及插入函数`insert`将值添加到列表的末尾。如果列表已满,则会动态扩大其容量。
在`main`函数中,我们创建了一个顺序列表,并插入了一些整数值,最后打印出列表的内容。
阅读全文