高盛面试题:q->data=a[i]; p->next=q; p=q;这是什么意思?

来源:百度文库 编辑:高考问答 时间:2024/04/28 21:07:31

p,q是指针,我觉得从你写的三句程序来看,它门都是指向同一种结构体的同一个结点,而本题中的结构体包含data变量.这三句是为了创建链表.
q->data=a[i];此句是把a[i]的值赋给了q所指向结构体的data内,输入了第一个结点.
p->next=q;是把q接到了p的后面,也就是说形成了新链表.
p=q;是把q中的值赋给p.
其实这个语句之后应该会有句用malloc动态的给q开辟空间的语句,然后又可以给q输入一个新的值a[i](i增加过),用p->next=q;把q接到了p的后面,形成下个结点,再用p=q;把q中的值赋给p,再动态开辟空间给q.直到链表完成.

烦琐的指针指向
是浪费
q->data=p->next=q; p=q;这是什么意思?
是指
把q的data空间放上a[i]的地址,也就是指向a[i]
然后把p的next空间放上q的地址,然后要p指向q

在链表末尾中添加一个新的节点。
q是新添加的节点,p是当前节点。
q节点的值是a[i],当前节点p的下一个节点是q(p->next=q);

添加完毕后,当前节点设置成新添加的节点(p=q)。

ps:p和q都是节点指针

这个是链表的实现吧。