用结构体声明一个存储整型的顺序表
时间: 2024-09-25 20:12:35 浏览: 37
顺序表建立学生健康表参考程序
在C语言中,我们可以使用结构体(struct)和数组结合来声明一个存储整型的顺序表,也称为动态数组。下面是一个简单的示例:
```c
// 定义一个存储整数的结构体元素
typedef struct {
int data; // 存储整数值的数据域
} ListElement;
// 定义顺序表类型的结构体,包含元素数量和首元素指针
typedef struct {
int capacity; // 表的最大容量
int size; // 当前元素的数量
ListElement* elements; // 指向元素的指针数组
} SequenceList;
// 初始化顺序表函数
void initSequenceList(SequenceList* list, int initial_capacity) {
list->capacity = initial_capacity;
list->size = 0;
list->elements = malloc(initial_capacity * sizeof(ListElement)); // 分配内存
}
// 插入元素到列表
void insertIntoSequenceList(SequenceList* list, int value) {
if (list->size == list->capacity) { // 如果已满,需要扩容
list->capacity *= 2; // 新容量是当前的两倍
ListElement* new_elements = realloc(list->elements, list->capacity * sizeof(ListElement));
if (new_elements) {
list->elements = new_elements; // 更新指针
} else {
printf("Memory allocation failed.\n");
return;
}
}
list->elements[list->size].data = value; // 插入值
list->size++;
}
// 示例用途
int main() {
SequenceList my_list;
initSequenceList(&my_list, 5); // 初始化一个可以存储5个元素的列表
// 插入元素...
insertIntoSequenceList(&my_list, 10);
insertIntoSequenceList(&my_list, 20);
// 使用列表...
return 0;
}
```
阅读全文