有关链表插入排序的问题!望大家指教!
我采用的是直接插入的方法对链表进行排序.代码如下:请大家瞅瞅为什么不能运行呢!
struct student *sort(struct student *head) /*The Function Of Sort*/
{
struct student *p,*q,*head1; /*Define Temporary Pointer*/
int i=0; /*Create Order*/
head1=head->next;
head->next=NULL;
while (head1!=NULL)
{
p=head;
q=head;
while(p!=NULL&&head1->sum<p->sum)/*查找合适的插入位置*/
{
q=p;
p=p->next;
}
if(p==q)/*插在头结点之前*/
{
head1->next=head;
head=head1;
}
else/*插在连表中间位置*/
{
head1->next=p;
q->next=head1;
}
head1=head1->next;
}
p=head;
while (p!=NULL)/*给order赋值*/
{
i++;
p->order=i;
p=p->next;
}
return head;
}
[此贴子已经被作者于2006-3-11 21:59:00编辑过]