顺序表实现动态分配

发布时间 2023-09-03 16:53:30作者: ly2553
#include <stdlib.h>
#define InitSize 10  //默认最大长度
typedef struct{
 int *data; //顺序表的起始地址
 int maxsize;//最大容量      
 int length;//当前长度
}SeqList;
//初始化顺序表
void InitList(SeqList &L)
{
 L.data=(int*)malloc(InitSize*sizeof(int))//动态申请内存空间
 L.length=0;//初始长度为0
 L.maxsize=10;
//赋初始值
 forint i=0;i<L.maxsize;i++)
 {
 L.data[i]=i;
 }
}
//增加动态数组的长度
void IncreaseSize(SeqList &L,int len)
{
 int *p=L.data;
 L.data=(int *)malloc(sizeof(int)*(L.maxsize+len));
 for(int i=0;i<L.length;i++)
 {
    L.data[i]=p[i];
 }
 L.maxsize=L.maxsize+len;
 free(p);//销毁内存空间
}
int main()
{
 SeqList L;
 InitList(L);
 IncreaseSize(L,5);
 return 0;
}