c语言定义一个顺序表
时间: 2024-09-13 11:01:09 浏览: 44
C语言实现动态顺序表的实现代码
在C语言中,定义一个顺序表通常会涉及到结构体(struct)、数组以及一些基本操作函数。下面是一个简单的例子,定义了一个顺序表用于存储整数:
```c
#include <stdio.h>
#include <stdlib.h>
// 定义顺序表结构体,包含元素类型和大小
typedef struct {
int* elements; // 元素指针
int capacity; // 表的最大容量
int size; // 当前表中元素的数量
} SeqList;
// 初始化顺序表
SeqList* create_list(int capacity) {
SeqList* list = (SeqList*)malloc(sizeof(SeqList));
list->elements = (int*)malloc(capacity * sizeof(int));
list->capacity = capacity;
list->size = 0;
return list;
}
// 插入元素到列表
void insert(SeqList* list, int value) {
if (list->size == list->capacity) {
list->capacity *= 2;
list->elements = (int*)realloc(list->elements, list->capacity * sizeof(int));
}
list->elements[list->size++] = value;
}
// 打印列表元素
void print_list(SeqList* list) {
for (int i = 0; i < list->size; i++) {
printf("%d ", list->elements[i]);
}
printf("\n");
}
// 释放顺序表内存
void destroy_list(SeqList* list) {
free(list->elements);
free(list);
}
int main() {
SeqList* my_list = create_list(5); // 创建一个能存放5个元素的列表
insert(my_list, 10);
insert(my_list, 20);
print_list(my_list); // 输出 [10, 20]
destroy_list(my_list); // 清理内存
return 0;
}
```
这个例子中,我们首先定义了`SeqList`结构体,包含了指向元素的指针、最大容量和当前元素数量。然后实现了创建、插入、打印和销毁顺序表的操作。
阅读全文