读书人

直接插入法排序-链表,该如何处理

发布时间: 2013-01-22 10:23:54 作者: rapoo

直接插入法排序--链表
有一个带头结点的单链表head,其ElemType类型为char。设计一个算法使其元素有序递增。

void Sort(LinkList *&head)
{
LinkList *p = head->next, *q, *r;
if(p != NULL)
{
r = p->next; /* r保存*p结点后继结点的指针 */
p->next = NULL; /* 构造只含一个数据结点的有序表 */
p = r;
while(p != NULL)
{
r = p->next; /* r保存*p结点后继结点的指针 */
q = head;
while(q->next != NULL && q->next->data < p->data)
q = q->next;
p->next = q->next;
q->next = p;
p = r;
}
}
}对这个算法有点看不懂 求教

[解决办法]
插入法对单练表排序 问题。建议lz,在本子上划一划
关于在链表中实现插入法排序
[解决办法]
直接插入法排序可以参考下《白话经典算法系列之二 直接插入排序的三种实现》
http://blog.csdn.net/morewindows/article/details/6665714

虽然是用数组来示范的,但思路可以借鉴下,希望对楼主有帮助。

读书人网 >C语言

热点推荐