void insertLinkSort(link header)
{//插入排序的链表,无头结点
link t,u,p,headerB =NULL;
link headerA;
for (headerA = header;headerA !=NULL;headerA = u)
{
p =NULL;
u = headerA->next;//
for (t = headerB;t !=NULL; t = t->next)
{
if (t->data > headerA->data)
{
break;
}
p = t;
}
headerA->next = t;
if (p)
{
p->next = headerA;
}
else
{
headerB = headerA;
}
}
}
PNode insertLink(PNode header)
{//插入排序的链表,无头结点
PNode u;
PNode headerA = NULL;
for (PNode p = header;p;p = u)
{
u = p->next;
PNode x = headerA;
PNode temp = NULL;
for (;x;x = x->next)
{
if (x->data > p->data)
{
break;
}
temp = x;
}
if (!temp&&!x)
{
headerA = header;
headerA->next = NULL;
}
else
{
if (!temp)
{//头插入
p->next = x;
headerA = p;
}
if (temp)
{//中间插入
p->next = x;
temp->next = p;
}
if(!x)
{//尾部插入
p->next = temp->next;
temp->next = p;
}
}
}
return headerA;
}