不定长顺序表,顾名思义,就是顺序表的长度不定,可以存放任意多个数据。与定长顺序表相比,它可以在顺序表长度不够用时自己进行扩容。那么在设计不定长的顺序表时,存放数据的数组就不能是固定长度的了,这时我们可以考虑用动态数组elem来代替,进行扩容时就可以动态申请内存,将数据存放到动态数组中。同时加入一个变量size来存放总的格子数(总容量)。
接下来是代码:
#include<stdio.h>
#include<assert.h>
#include<stdlib.h>
#include<memory.h>
#include"DSeqList.h"
//初始化
void Init(PDSeqList pl)
{
if (pl == NULL)
{
return;
}
pl->parr = (ELEM_TYPE*)malloc(sizeof(ELEM_TYPE)*INITSIZE); //动态开辟空间
assert(pl->parr != NULL);
pl->cursize = 0; //数组长度为0
pl->totalsize = INITSIZE; //数组总长度为宏定义数据5
}
//第一种扩容方式 利