首页 > 编程知识 正文

locateelem函数的用法,已知l为不带头的单链表

时间:2023-05-05 09:47:28 阅读:167467 作者:3235

在研究生院复习单链表时,我发现书中对初始化单链表的代码有些不明白。 我想查一下资料再保存。 写了之后不懂的时候可以看。 首先给出单链表的存储结构的代码。

typedef struct Node{ ElemType data; struct Node * next; }Node,*Linklist; //Linklist是结构指针类型这里: Linklist和Node *是相同的结构指针类型,说明两者是等价的。 Linklist强调它是一个单链接列表,而Node *强调它是一个节点。 继续谈Linklist L与Linklist *L的区别:此处仅供参考: https://blog.csdn.net/mountain dancer/article/details/78397640

LinkList L: L是指向定义的node结构的指针,可以使用-运算符访问作为结构成员的L-elem。 (l )是一个node类型的结构,可以使用点运算符访问作为该结构成员的) l ).elem。

关于LinkList *L:L,由于是指向已定义的Node结构的指针,因此(l )是指向Node结构的指针,可以用-运算符访问结构成员,即(l )-elem。 当然,) *L )是Node型结构体,因此可以通过点运算符访问结构体成员

*在链表操作中经常使用链表变量中作物函数的参数。 在这种情况下,使用LinkList L还是LinkList L值得深思。 如果一个做不好,函数就会出现逻辑错误。 其指导方针是:

如果函数希望更改指针l的值,并在调用函数后保存l的值,请使用LinkList L。 这样,传递给函数的就是指针的地址,调用结束后,可以自然地改变指针的值。

如果函数只更改指针指向的内容,而不更改指针的值,请使用LinkList L。

eg :

初始化单链表:

initlist(linklist*L ) ) l=(link list ) mallac ) sizeof ) node ); //这里相当于Linklist L,将申请的存储器空间的地址设为L(*L )-next=NULL; //这里也同样,相当于Linklist L将NULL代入L-next; (总结)但是,所有修改l值的操作都使用*L,Linklist L就足够了,除非下次修改l值。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。