线性表(线性存储):
其实 线性表理解数据是连续的,意思就是中间不能间隔,不能跳跃式的存储。
实现方式,一种是线性存储,一种是链式存储。其实理解线性表其实主要问题在于如何将业务结点存进线性表
1.线性存储,我们是通过数组来实现的:
譬如我们有一个业务结构,譬如person的结构体:
typedef struct person
{
int age;
char name[64];
}person;
,那么我们如何将一个一个的person的结点存进线性表呢,我们可以通过void * 可以接收任何指针类型的方式来实现,这样我们的线性存储可以这样定义:
typedef struct _seqlist
{
int length,
int capacity',
void **ptr,
}seqlist;
而线性表的结点,我们可以这样定义,因为void * 类型可以接收任意的指针类型
typedef void * seqlistnode;
一、线性表线性存储的API函数:
1.先创建一个线性表:
//创建一个线性表
seqlist*seqlist_create(int cap)
{
int ret = 0;
if(cap <0)
{
ret = -1;
printf("seqlist_create error ,传进来的容量小于了0:%d \n",ret);
return NULL;
}
seqlist *tmp = NULL;
tmp = mall