线性表的动态分配代码实现
时间: 2023-10-11 19:06:54 浏览: 87
要实现线性表的动态分配,可以使用C语言中的指针和动态内存分配函数`malloc`和`free`。下面是一个简单的示例代码来演示如何动态分配线性表:
```c
#include <stdio.h>
#include <stdlib.h>
typedef struct {
int* data; // 存储线性表元素的指针
int length; // 线性表的当前长度
int capacity; // 线性表的容量
} List;
// 初始化线性表
void initList(List* list, int capacity) {
list->data = (int*)malloc(sizeof(int) * capacity); // 动态分配内存
list->length = 0;
list->capacity = capacity;
}
// 向线性表中插入元素
void insert(List* list, int element) {
if (list->length >= list->capacity) {
printf("线性表已满,无法插入元素。\n");
return;
}
list->data[list->length] = element;
list->length++;
}
// 打印线性表中的元素
void printList(List* list) {
printf("线性表中的元素:");
for (int i = 0; i < list->length; i++) {
printf("%d ", list->data[i]);
}
printf("\n");
}
// 释放线性表的内存空间
void freeList(List* list) {
free(list->data); // 释放动态分配的内存
}
int main() {
List list;
int capacity = 5;
initList(&list, capacity);
insert(&list, 1);
insert(&list, 2);
insert(&list, 3);
printList(&list);
freeList(&list);
return 0;
}
```
在上面的示例代码中,我们定义了一个`List`结构体,其中`data`是一个指向整型数组的指针,用于存储线性表的元素。`length`用于记录线性表的当前长度,`capacity`用于记录线性表的容量。
通过调用`initList`函数,我们可以动态地分配内存来创建线性表,并初始化相关变量。在插入元素时,我们首先检查线性表是否已满,如果未满,则将元素添加到`data`指针指向的数组中,并更新`length`的值。
最后,通过调用`freeList`函数,我们可以释放动态分配的内存空间。
请记得在使用动态分配的内存后,需要及时释放以避免内存泄漏。
阅读全文