[求助]链表.??
这是链表的的个插入函数,看了半天都不明白函数里面的 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的前驱
----------------解决方案--------------------------------------------------------