#include<stdio.h> //输入输出需要的头文件
#include<stdlib.h> //mallc函数和free函数需要的头文件
#define InitSize 10 //定义顺序表的初始长度
typedef struct
{
int* data; //动态分配数组的指针
int MaxSize; //顺序表的最大容量
int length; //顺序表的当前长度
}SqList; //创建顺序表
void InitList(SqList &L) //初始化顺序表的函数
{
L.data=(int *)malloc(InitSize*sizeof(int)); //申请数组空间并指向指针
for(int i=0;i<InitSize;i++)
{
L.data[i]=0;
} //防止脏数据,为数组设置默认初始值
L.length=0;
L.MaxSize=InitSize; //当前顺序表最大长度就是默认长度
}
void InsertList(SqList &L,int len) //增加动态数组的长度的函数
{
int* p; //定义一个指针p指向原数组
p=L.data;
L.data=(int *)malloc((InitSize+len)*sizeof(int)); //原数组重新开辟增加长度后的数组的空间
for(int i=0;i<InitSize;i++)
{
L.data[i]=p[i]; //把原来的数据复制给重新开辟的数组的空间
}
L.MaxSize=L.MaxSize+len; //顺序表的最大长度变为扩大后的长
顺序表的动态分配
最新推荐文章于 2024-04-01 22:17:13 发布
![](https://img-home.csdnimg.cn/images/20240711042549.png)