# include<stdio.h>
# include<stdlib.h>
#define InitSize 10 // 默认最大长度
// #define MaxSize 10 // 定义最大长度
typedef struct {
int *data; // 指示动态分配数组的指针
int MaxSize; // 用静态的 “数组” 存放数据元素
int length;
}SqList;
void InitList (SqList &L)
{
// for (int i = 0; i < MaxSize; i++)
L.data = (int *) malloc (InitSize *sizeof(int));
L.MaxSize = InitSize;
L.length = 0; // 顺序表初始长度为 0
}
void IncreaseSize(SqList &L, int len)
{
int *p = L.data;
L.data = (int *) malloc((L.MaxSize+len)*sizeof(int));
for(int i=0;i<L.length;i++)
{
L.data[i] = p[i]; // 将数据复制到新区域
}
L.MaxSize = L.MaxSize + len; // 顺序表最大长度增加 len
free (p); // 释放原来的内存空间
}
int main()
{
SqList L; // 声明一个顺序表
InitList(L); // 初始化顺序表
IncreaseSize(L,5);
for(int i =0;i<L.MaxSize;i++)
{
printf("data[%d]=%d\n",i,L.data[i]);
}
return 0;
}