微智科技网
您的当前位置:首页对链表进行排序,使其递增有序

对链表进行排序,使其递增有序

来源:微智科技网

算法实现:


//对链表进行排序
void Sort(LinkList& L)
{
	LNode* p = L->next->next;    //p用于遍历原链表中第二个结点往后的那些结点
	L->next->next = NULL;       //建立一个只有一个结点的有序链表

	LNode* pre, * temp, * q;

	while (p != NULL)
	{
		temp = p->next;  //用于取得链表p的下一个节点

		//找到p结点在L链表中的位置,将其插入该位置
		for (pre = L, q = L->next; q != NULL; pre = q, q = q->next)
		{
			if (q->data > p->data)
				break;	
		}
		p->next = pre->next;
		pre->next = p;

		p = temp;
	}
}

 算法效果:

因篇幅问题不能全部显示,请点此查看更多更全内容