LINK s_ort(LINK head ,int(*f)(int ,int ),int nnu) //单科成绩排序&&插入法
{ //nnu指学科 score【n'nu】
LINK q = (LINK)malloc(sizeof(NODE));
LINK p = (LINK)malloc(sizeof(NODE));
LINK h = (LINK)malloc(sizeof(NODE));
p = head->next; //断开
head->next = NULL; //断开头节点
while(p)
{
q = p->next ; //保护地址
p->next = NULL;
h = head ;
while(h->next && f(h->next->score[nnu], p->score[nnu]) )
{
h = h->next;
}
p->next = head->next; //连接生成新链表
head->next = p;
p = q;
}
return head;
}