用C语言设计一个线性表实现顺序存储,并插入一个元素
时间: 2024-10-11 08:08:52 浏览: 43
在C语言中,我们可以使用数组来实现顺序存储的线性表。下面是一个简单的例子,展示如何创建一个动态大小的顺序表,并插入一个新的元素:
```c
#include <stdio.h>
#include <stdlib.h> // 包含malloc函数
// 定义顺序表结构体
typedef struct {
int* data; // 数据指针
int size; // 当前元素的数量
int capacity; // 表的最大容量
} SeqList;
// 初始化顺序表
SeqList* create_list(int capacity) {
SeqList* list = (SeqList*) malloc(sizeof(SeqList));
list->data = (int*) 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 = (int*) realloc(list->data, list->capacity * sizeof(int)); // 动态扩容
}
list->data[list->size] = value; // 插入元素
list->size++;
}
// 打印顺序表内容
void print_list(SeqList* list) {
for (int i = 0; i < list->size; i++) {
printf("%d ", list->data[i]);
}
printf("\n");
}
int main() {
SeqList* list = create_list(5); // 创建一个初始容量为5的列表
insert(list, 10); // 插入元素10
insert(list, 20);
print_list(list); // 输出: 10 20
free(list->data); // 释放内存
free(list);
return 0;
}
```
这个程序首先创建了一个顺序表`create_list`,然后通过`insert`函数在适当的位置添加新元素,最后打印出整个列表的内容。
阅读全文