当前位置: 代码迷 >> C语言 >> [求助]链表.??
  详细解决方案

[求助]链表.??

热度:429   发布时间:2007-05-15 02:35:21.0
[求助]链表.??
这是链表的的个插入函数,看了半天都不明白函数里面的 q 起了什么作用.
大侠告诉下啊.麻烦尽量说详细点哦..! 一共出现了两次..

S *add(S *head,S *new)
{
S *p,*q,*head;
p=q=head;
if(head==0)
{ head=new; new->next=0 return head; };
else
while((new->num>p->num)&&(p->next!=0)
{ q=p; p=p->next; }
if(new->num<p->num)
{
if(p==head) { head=new; new->next=p; }
else { q->next=p->next new->next=p; }
}
else
{ p->next=new; new->next=0;}
return head;
}
----------------解决方案--------------------------------------------------------
链表不是看出来的,是“画”出来的,对链表操作你只要画出示意图,都会变得简单!
----------------解决方案--------------------------------------------------------
head.....,p,q,.....
new就插在p和q之间,即p用来指向q的前驱
----------------解决方案--------------------------------------------------------
  相关解决方案