关于数据结构的问题

typedef struct{
ElemType *elem;
int length;
int listsize;
}
和typedef struct{
ElemType a[Max];
int size;
}
第一个里面的elem、length、listsize表示的是什么,和第二个有什么区别?

elem表示一个ElemType类型的指针,length和listsize都是int型。从命名上看可能是顺序表的长度和容量。第一种写法可以动态分配数组内存,第二种写法a[MAX]就把数组写死了,长度只能是MAX。追问

可能写的不是很清楚,ElemType是int型,这样的话,第一个是怎样顺序存储数据的?不是应该要用数组的吗?

追答

可以通过elem = (ElemType*)malloc(sizeof(ElemType)*listsize)动态分配内存空间,然后将elem当做数组使用。

追问

也就是说可以写成elem[i]?那么length和listsize是什么关系?

追答

length是顺序表中当前元素个数,listsize是顺序表数组容量。

温馨提示:答案为网友推荐,仅供参考
相似回答