找回密码
 注册会员
查看: 757|回复: 0

求一个C语言单链表的排序函数,很急很急

[复制链接]
发表于 2010-8-10 13:44:09 | 显示全部楼层 |阅读模式
<p>求一个C语言单链表的排序函数,很急很急</p>
<p><img src="http://img.baidu.com/img/iknow/icn_point.gif"> 悬赏分:0 -</p>
<p>解决时间:2010-8-10 13:42</p>
<p>升序!!!!只要函数,最好能有些注释(因为每人命名变量名的习惯都不一样)</p>
<p>谢谢啦!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!</p>
<p>提问者: cgame5050 - 一级</p>
<p>最佳答案</p>
<p>用选择排序就行,代码如下。</p>
<p>链表结构如下:</p>
<p>typedef struct Node</p>
<p>{</p>
<p>T value;</p>
<p>struct Node *link;</p>
<p>}Node;</p>
<p>void selectSort(Node *node)</p>
<p>{</p>
<p>Node *cur; /*当前节点*/</p>
<p>Node *next; /*遍历未排序节点*/</p>
<p>Node *min; /*指向未排序节点中最小节点*/</p>
<p>T temp;</p>
<p>/*从头节点的下一个节点开始,一直到倒数第二个节点*/</p>
<p>for(cur = node->link; cur->link->link != 0; cur = cur->link)</p>
<p>{</p>
<p>min = cur;</p>
<p>/*从当前节点的下一个节点开始比较,找出最小值,用min指向,也就是找出未排序部分最小值放到已排序的下一位置*/</p>
<p>for(next = next->link; next != 0; next = next->link)</p>
<p>if(min->value > next->value)</p>
<p>min = next;</p>
<p>/*交换*/</p>
<p>temp = cur->value;</p>
<p>cur->value = min->value;</p>
<p>min->value = temp;</p>
<p>}</p>
<p>}</p>
<p>0</p>
<p>回答者:</p>
<p>songwanqiang - 七级   2010-7-25 10:06</p>
<p>我来评论>></p>
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|文字版|手机版|小黑屋|襄阳城

GMT+8, 2025-5-13 02:43

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表