顺序表的顺序表示—动态分配
代码实现
#include <stdio.h>
#include <stdlib.h>
#define InitSize 15 // 初始化扩容长度
typedef struct{
int *data; // 动态分配数组的指针
int MaxSize;
int length; // 当前长度
}SeqList;
void InitList(SeqList &L){
// 申请一片连续的内存空间
L.data = (int*)malloc(InitSize * sizeof(int));
L.length = 0;
L.MaxSize = InitSize;
}
// 扩容方法
void incrSize(SeqList&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 += len;
free(p);
}
int main() {
SeqList L;
InitList(L);
printf("InitList 后的长度:%d \n",L.MaxSize);
incrSize(L,10);
printf("incrSize 扩后的长度:%d \n", L.MaxSize);
return 0;
}
执行结果