| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1472 人关注过本帖
标题:[求助][急]链表排序..
取消只看楼主 加入收藏
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
 问题点数:0 回复次数:8 
[求助][急]链表排序..

假设有个链表,没个结点存放了若干数据。
现在我要按结点中的关键字(数据)进行排序。

问题出来了,假设我同时需要对数据A,和数据B,分别排序,那么我就得写两个函数,因为其中
p->A 和 p->B 不能一致。

还没说清楚的话举个例子

struct p{
double height;
double weight;
p *next;
}
我如果要按“身高”和“体重”给分别链表排序,只用一个函数整合,该怎么做?

注:不是主次之分,就是把两个代码类似的函数合并为一个函数的问题。

[此贴子已经被作者于2007-8-11 1:59:37编辑过]

搜索更多相关主题的帖子: 链表 
2007-08-10 22:57
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
还是先按照height排一次,再按照weight排一次,而你又不想写两段相似的代码?

汗,就是这个意思,原谅我没说清楚!

Fight  to win  or  die...
2007-08-11 00:55
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
就是
sort_h();
没有主次之分,单纯的排序而已
sort_w();

两个函数除了比较那里代入的值不一样,其他都一样。
有没有方法把他们合并成一个函数调用!


不是你楼下那个意思

[此贴子已经被作者于2007-8-11 1:04:02编辑过]


Fight  to win  or  die...
2007-08-11 01:01
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
以下是引用leeco在2007-8-11 1:04:11的发言:
使用函数指针作为排序函数参数,qsort和sort都是这样的

你意思是加一个谓次函数作为参数?我想下,说具体点,怎么定义那个谓词函数?


Fight  to win  or  die...
2007-08-11 01:06
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
以下是引用野比在2007-8-11 1:11:09的发言:
用不着..
用临时变量维护主序.. 传递节点数给排序函数...就可以重用了...

啥米意思?

那个用谓词,我估计行不通,因为我要重用,是因为p->height,和p->weight,这两个就是字面表达不一样啊?不存在比较的方式,或者类型!
麻了!


Fight  to win  or  die...
2007-08-11 01:15
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
野比,你说那个我还没涉及过。

我的问题不是要派两次,我就排一次,有可能按w排,有可能按h排,我不想写两个类似的函数而已。
弄到一起不知道有啥办法没!

这个意思。



我要睡觉了,你们怎么都这么晚?熬夜么?辛苦啊!我是睡不着!

Fight  to win  or  die...
2007-08-11 01:27
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
以下是引用野比在2007-8-11 1:23:23的发言:

不行了..太累了..睡了
明天加班的时候找机会写一个看看..

呵呵,好的,晚安!


Fight  to win  or  die...
2007-08-11 01:28
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
以下是引用leeco在2007-8-11 23:05:38的发言:
_CRTIMP void __cdecl qsort(void *, size_t, size_t, int (__cdecl *)
(const void *, const void *));

这是标准库函数啊。楼主不知道?

我知道啊,就是用一个函数指针做参数,当谓词在函数做调用。
但是我的问题不能用这种方式解决,13楼里我说明了。也可能是我没考虑深入,你知道请指教下。
光给我个原形!


[此贴子已经被作者于2007-8-11 23:14:07编辑过]


Fight  to win  or  die...
2007-08-11 23:12
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
回复:(leeco)[code]#include #inc...
thx.
仔细研究中,问题我早上解决了,不过不是用的这种方法。
无论如何,谢谢你!

Fight  to win  or  die...
2007-08-11 23:23
快速回复:[求助][急]链表排序..
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.033516 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved