读书人

求解一道编程题~解决方案

发布时间: 2012-03-16 16:34:56 作者: rapoo

求解一道编程题~~~
题目:新建一个链表a(此链表包括一数据域和指针域),然后再按链表中各数据域中的数据由小到大进行排列,从而形成一个新的链表,最后输出这个排序后的新链表的数值。(如:输入:5 9 6 1 3 输出:1 3 5 6 9)

[解决办法]
单链表排序: head为头结点
void sort(linklist *&head)
{
linklist *p=head-> next,*q,*r;
if(p!=NULL)
{
r=p-> next;
p-> next=NULL;
p=r;
while(p!=NULL)
{
r=p-> next;
q=head;
while(q-> next!=NULL&&q-> next-> data <p-> data)
q=q-> next;
p-> next=q-> next;
q-> next=p;
p=r;
}
}
}

读书人网 >C语言

热点推荐