静态数组存放数据以及初始化
#define MaxSize 50//定义最大长度
typedef struct{
int data[MaxSize];
int length;//顺序表当前长度
}Sqlist;
void InitList(Sqlist &L)//初始化
{
L.length=0;
}
动态分配以及初始化
动态分配后期增加动态数组简单,只需要只需要重新申请空间即可
#define InitSize 50//默认最大长度,后期可以增加长度
typedef struct{
int *data;//指向动态分配数组的地址(存储空间的首个字节地址)
int MaxSize;
int length;
}Sqlist;
void InitList(Sqlist &L)
{
L.data=(int *)malloc(InitSize*sizeof(int));
L.MaxSize=InitSize;
L.length=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;
free(p);//释放p
}
增加数据
bool ListInsert(Sqlist &L,int i,int e){//在第i个位置插入元素e
if(i<1||i>L.le