严蔚敏版数据结构中线性表的动态分配顺序存储结构的问题

2024-12-22 21:35:44
推荐回答(2个)
回答1:

一:A、LIST_INIT_SIZE是初始化时一次分配的内存大小,共100个ElemType类型
这个大小用listsize来表示
B、LISTINCREMENT用于追加内存,当初始化分配的内存用完后,需用realloc函数追加,
而一次追加的内存大小就是10个ElemType类型
C、初始化分配了内存,表明这些内存可以被本程序使用,但本程序究竟使用了所分配的多大的内存,
这就是length的作用,共使用了length个ElemType类型
二、L.listsize为int类型,LIST_INIT_SIZE是个整型数据,当然可以赋值
三、L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));只是分配了一个大小为100个ElemType
类型的连续的内存空间,并且用指针L.elem指向这段空间的第一个ELemType,
因为是连续的 ,所以可以认为是数组L.elem[100]

回答2:

问题1:LIST_INIT_SIZE用以定义初始分配空间的,LISTINCREMENT当表满了,再分配时增加的空间

问题2:
L.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType));这句话是分配数组的存储空间
L.listsize=LIST_INIT_SIZE; 表示当前所能存储元素的个数,
问题3:ElemType *elem;是指针,用以指向数组的首地址,如不清楚可看C语言书啊