小白求助,关于大话数据结构中的一段代码
*将所有的在线性表Lb中但不在La中的数据元素插入到La中*/
void unionL(SqList *La,SqList Lb)
{
int La_len,Lb_len,i;
ElemType e; /*声明与La和Lb相同的数据元素e*/
La_len=ListLength(*La); /*求线性表的长度 */
Lb_len=ListLength(Lb);
for (i=1;i<=Lb_len;i++)
{
GetElem(Lb,i,&e); /*取Lb中第i个数据元素赋给e*/
if (!LocateElem(*La,e)) /*La中不存在和e相同数据元素*/
ListInsert(La,++La_len,e); /*插入*/
}
}
蓝色这里对传入的指针变量取*,C语言中有这种合法操作嘛
这么写没有问题
如果SqList是一个指针类型的话,La就是一个二级指针
*La就是一个一级指针,把这个一级指针传给ListLength没问题
就算SqList是一个结构体,La是一级指针
*La是这个结构体,这也是可以的,就是这么做不好,这会把整个结构体复制一份,然后传给ListLength
页:
[1]