线性表的顺序存储实现C语言
时间: 2024-10-12 21:06:35 浏览: 42
线性表的顺序存储实现通常会利用数组数据结构,在C语言中,可以这样创建和操作:
```c
#include <stdio.h>
// 定义一个元素类型的结构体,这里假设元素类型是整型
typedef struct {
int data; // 存储元素的数据域
} Node;
// 定义线性表的顺序存储结构
typedef struct {
Node* array; // 指向数组的指针
int size; // 数组长度
int capacity; // 当前数组容量
} LinearList;
// 初始化线性表
LinearList* create_list(int capacity) {
LinearList* list = (LinearList*)malloc(sizeof(LinearList));
list->array = (Node*)malloc(capacity * sizeof(Node));
list->size = 0;
list->capacity = capacity;
return list;
}
// 插入元素到列表末尾
void insert(LinearList* list, int value) {
if (list->size == list->capacity) {
list->capacity *= 2; // 如果满,扩容
Node* temp = (Node*)realloc(list->array, list->capacity * sizeof(Node)); // 动态扩容
list->array = temp;
}
list->array[list->size].data = value;
list->size++;
}
// 打印列表
void print_list(const LinearList* list) {
for (int i = 0; i < list->size; i++) {
printf("%d ", list->array[i].data);
}
printf("\n");
}
// 示例使用
int main() {
LinearList* list = create_list(5);
insert(list, 1);
insert(list, 2);
insert(list, 3);
print_list(list); // 输出: 1 2 3
free(list->array);
free(list);
return 0;
}
```
阅读全文