link list * linklistinsertsort (link list * phead ) )。
{
链接列表* pfirst=(链接列表* ) NULL; /*原始链表中仍有未排序节点的头指针*
链接列表* pcurrinsert=(链接列表* ) NULL; /*当前插入到无序链表中的节点*
链接列表* pprev=(链接列表* ) NULL; /*有序链表插入位置前的节点*
链接列表* ppost=(链接列表* ) NULL; /*节点位于有序链表的插入位置*
pFirst=pHead-m_next; //原始链表的未排序链表的第一个节点/
pHead-m_next=NULL;/*有序链表,只包含一个节点*
空!=pFirst ()/*遍历无序链表) /
{
pCurrInsert=pFirst;
pPost=pHead;
while () ) (空!=pPost () pPost-m_key pCurrInsert-m_key ) )
{
pPrev=pPost;
pPost=pPost-m_next;
}
pFirst=pFirst-m_next;
if(ppost==phead(/*节点pCurr插入在第一个节点之前(/
{
pHead=pCurrInsert;
}
else /* pPrev是pPost的前体*/
{
pPrev-m_next=pCurrInsert;
}
pCurrInsert-m_next=pPost; /*节点pCurrInsert */
}
返回头;
}