使用C语言中的结构体(struct)定义一个顺序 表,包括存储数据的数组、最大容量、当前长度等字段 编写一个函数,用于初始化顺序表,将其设置为空表状态。
时间: 2024-09-24 18:28:05 浏览: 51
在C语言中,我们可以使用结构体(struct)来定义一个顺序表,包含一个数组用来存储数据,以及两个额外的成员变量:`capacity` 表示最大容量,`length` 表示当前元素的数量。下面是如何创建这样一个结构体并编写初始化函数的示例:
```c
#include <stdio.h>
// 定义顺序表结构体
typedef struct {
int* data; // 存储数据的数组
size_t capacity; // 最大容量
size_t length; // 当前长度
} SequenceList;
// 初始化顺序表函数,设置为初始状态(空表)
void initSequenceList(SequenceList* list) {
list->data = NULL;
list->capacity = 0;
list->length = 0;
}
int main() {
// 创建一个新的顺序表实例
SequenceList seqList;
// 使用initSequenceList函数初始化顺序表
initSequenceList(&seqList);
// 检查是否初始化成功
if (seqList.data == NULL || seqList.capacity == 0 || seqList.length != 0) {
printf("顺序表未正确初始化.\n");
} else {
printf("顺序表已成功初始化为初始状态.\n");
}
return 0;
}
```
在这个例子中,我们首先定义了一个 `SequenceList` 结构体,然后创建了 `initSequenceList` 函数来清空数据指针 (`list->data`),并将容量和长度都设为0,从而实现了顺序表的初始状态。
在 `main` 函数中,我们创建了一个 `SequenceList` 类型的变量,并调用 `initSequenceList` 来初始化它。最后检查初始化后的状态来确认是否正确。
阅读全文