下面的程序 有三句不明白是什么意思 请指教 谢谢! p->next=L->next; L->next=p; L=L->next;

2024-12-28 09:30:47
推荐回答(3个)
回答1:

整个的意思是,生成一个新的节点,并将其插入到数据链中(应该是一个闭合的链,就是头尾相连)。

L是整个链中的初始节点,仅一个节点时,节点的next指向自己。也作为最后一个节点。
新节点p,将被作为最后一个节点插入数据链中。

RLinkList p= (RLinkList) malloc ( sizeof(RLNode) );//生成数据节点空间
p->data=t; //保存节点的数据,t是输入的数据,也是节点中的数据
p->next=L->next; // L代表最后一个节点(应该是last的字头),L的next是指向头的,p将作为最后一个节点
L->next=p; // p将作为L的下一个节点,即新的最后一个节点
L=L->next; // 将最后一个节点设置为p,此句实际上就是, L=p;

回答2:

好长啊,我看你问题中的三句了,p->next=L->next; L->next=p; L=L->next;
如果p和l都是指向节点的指针,你是在做链表创建函数的话,

这3句就是把现在新创建的节点的地址值给前一个节点的next指针,
然后把新建的节点地址值给当前用的用做循环的一个指针,让这个指针指向的节点在下次循环时变成当前节点

回答3:

p->next=L->next; 是把L的下一个结点赋给p
L->next=p; 是把p赋给L的下个节点
L=L->next;把L的下个结点赋给L