数据结构线性表的一个问题 谢谢了

这是在严蔚敏的数据结构(C语言版)上面的一个例子 我看不懂啊。。。
#define LIST_INIT_SIZE 100
#DEFINE LISTINCREMENT
typedef struct{
Elemtype *elem;
int length;
int listsize;
}SqList;
Status Inlilist_Sq(sqlist &L){
//构造一个空的线性表。
L.elem=(Elemtype *)malloc(100*sizeof(ElemType));
if(!L,elem)exit(OVERFLOW);
L.length=0;
L.listzise=100;
return OK;
}//Initlist_Sq

我不懂
L.lenght=0;
llistsize =100;
这两行的意思 书上说是 空表长度为0 初始存储容量 但是为什么要做这步呢

对线性表进行初始化的过程,就是为它分配存储空间并为成员变量赋初值的过程。
刚初始化的顺序表,显然是还没有任何元素的空表,所以成员变量length设为0;另一方面由于分配了固定大小为100个整型的存储空间,于是listsize要赋值100;随着以后对该表的元素插入等操作,length变量的值会逐渐改变,但不会超过listsize。而listsize在重新初始化之前是应当发生变化的。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-03-12
Inlilist_Sq这个函数作用是对线性表进行初始化,也就是为它分配存储空间并为成员变量赋初值;
首先对顺序表长度赋初值,即这L.lenght=0;
接着分配了固定大小为100个整型的存储空间,即llistsize =100;
这个只是赋初值的作用;
第2个回答  2021-11-07
这也就验证了这句话:线性表初始化后存储空间大小是能改变的
相似回答