C语言关于单链表的函数问题(只为等你)
void f(LinkList &L)
{
LinkList p, q, s;
p=L->next;
while (p!=null )
{
q=p->next;
while (q!=null && q->data==p->data)
{ s=q->next ; free(q); q=s; }
p->next=q ; p=q;
}
}
主要有三大疑问 1: 函数的具体职能我没能弄懂
2:如p->next=q 语句的含义
3: q=p->next和 p->next=q的区别
4:p,q,s到底指的是结点还是当前结点的数据域
[解决办法]
1.功能是删除相邻的并相等的结点(只保留一个)
2.p->next=q的意思 是,p->next指向q。。。。
[解决办法]
3: q=p->next和 p->next=q的区别
这个就好比,是int a=10,b=11;然后运行a=b;和b=a;的区别
[解决办法]
4:p,q,s到底指的是结点还是当前结点的数据域
p,q,s指的是结点,q->data才是数据域
[解决办法]
这个函数的功能大概是将LinkList链表中的重复元素删除;
p->next=q的意思是使p的后继指向节点q;
q=p->next是使结点q指向p的后继结点;
p,q,s确切来讲,应该是指向结点的引用,实质和指针变量的功能相同...
还用什么不懂得,也可以问