数学建模社区-数学中国

标题: 数据结构的问题 [打印本页]

作者: 流泪手心    时间: 2012-3-19 21:46
标题: 数据结构的问题
本帖最后由 流泪手心 于 2012-3-19 21:52 编辑

本人在学严老师的数据结构,书上写的伪代码让我很头疼,好不容易找到C的源码,就第二章的线性表的顺序存储结构有问题,代码如下:
/* c2-1.h 线性表的动态分配顺序存储结构 */
#define LIST_INIT_SIZE 10 /* 线性表存储空间的初始分配量 */
#define LISTINCREMENT 2 /* 线性表存储空间的分配增量 */
typedef struct
{
   ElemType *elem; /* 存储空间基址 */
   int length; /* 当前长度 */
   int listsize; /* 当前分配的存储容量(以sizeof(ElemType)为单位) */
}SqList;
线性表的顺序存储结构的物理地址是连续的,是不是所有数据都存在了elem这个指针所指向的空间?那length不是结构体的一个变量吗,我们一般都自己赋值的,现在它怎么能和存储空间联系起来啊?我如果改变了存储空间数据,length怎么跟着一起变?还有listsize这个变量也是,怎么和elem联系起来啊?
还有代码如下:
Status DestroyList(SqList *L)
{ /* 初始条件:顺序线性表L已存在。操作结果:销毁顺序线性表L */
   free((*L).elem);
   (*L).elem=NULL;
   (*L).length=0;
   (*L).listsize=0;
   return OK;
}
free不是已经释放了结构体指针的L吗,不就不存在了L这个结构体指针了吗?为什么还要赋空值给*L的各个变量?




欢迎光临 数学建模社区-数学中国 (http://www.madio.net/) Powered by Discuz! X2.5