一个链表排序问题
本链表中的jz是周号,number是星期号(0-6),想按时间顺序重新排列链表。排列思路为先从当列表中选出含最大的数变量,把它“切除”出来“粘”到开头,切除处重新连接好。然后把开头除外最大的数的变量选出来再按刚才的操作“粘”到开头,这样当只剩一个变量时,就是按小到大的顺序排列了。void Array(Pointer *Head)
{ Pointer p,p1,p2,pt; //Pointer是结构体指针变量
pt=p=p2=*Head;
int flag=0;
while(p2!=NULL)
{
for(p=p1=p2;p1!=NULL;)
{
if((p->jz==p1->jz&&p->number<p1->number)||(p->jz==p1->jz&&p1->number==0)||p->jz<p1->jz)//选择最大变量放到p中
p=p1;
p1=p1->next;
}
if(p==p2) //如最大变量为第一项使p2后移一位,否则表示只剩一项退出循环
{if(p->next!=NULL)
p2=p2->next;
else
flag=1;
}
else if(p->next==NULL)//当p为表尾时的操作
{for(p1=p2;p1->next!=p;)
{p1=p1->next;
}
p->next=pt;
pt=p; //pt表示新链表的头指针
p1->next=NULL;
}
else
{for(p1=p2;p1->next!=p;)//p在链表中间,实现切除粘贴工作
{p1=p1->next;
}
p->next=pt;
pt=p;
p1->next=p->next;
}
if(flag)
break;
}
*Head=pt; //使头指向pt
}
加载这个函数就卡在那里不动了,用vc6调试提示缺少this指针,不知道是什么意思!求解!