各位帮帮忙谢谢了!
[此贴子已经被作者于2006-10-31 21:06:09编辑过]
[此贴子已经被作者于2006-10-31 21:06:09编辑过]
/*单链表头文件*/
/*从链表中拆出节点,插入到一新链表中*/
nodelink paixu(nodelink*head1)
{
nodelink p,pre,s,q,head ;
p=*head1 ;
pre=NULL ;
head=NULL ;
s=head ;
q=NULL ;
while(p!=NULL)
{
pre=p->next ;
/*保留P的原值,以便下一次访问*/
p->next=NULL ;
if(head==NULL)head=p ;
else
{
s=head ;
q=NULL ;
/*没找到,下移*/
while((s!=NULL)&&(p->info<=s->info))
{
q=s ;
s=s->next ;
}
if(q==NULL)
{
p->next=head ;
head=p ;
}
else
{
p->next=s ;
q->next=p ;
}
}
p=pre ;
}
return(head);
}
我觉得应该是这样理解:就是如果要插入的位置是新链表的首结点之前
p是从原链表拆出来的结点,q是新链表中插入p的结点之前的结点
[此贴子已经被作者于2006-11-1 14:35:40编辑过]