| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 3689 人关注过本帖
标题:链表排序问题
只看楼主 加入收藏
haichuan
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2006-3-7
收藏
 问题点数:0 回复次数:18 
链表排序问题
我在做潭浩强C语言书上的11.8题,就是让两个已经建立的链表按学号排序合并成一个链表,我的思路是:先将第二个链表接在第一个链表的后面,然后再对整个链表使用冒泡法排序,但但考虑到要用到三个指针p1,p2,p3不断后移,比较麻烦,希望大家给些建议,还有什么好的方法么?
搜索更多相关主题的帖子: 链表 潭浩强 C语言 学号 指针 
2006-04-20 10:46
lj_860603
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:714
专家分:0
注 册:2006-1-25
收藏
得分:0 

数据结构有快速排序``你学到那应该就可以知道了`


我的原则很简单:不做不喜欢的事!
2006-04-20 11:11
haichuan
Rank: 1
等 级:新手上路
帖 子:23
专家分:0
注 册:2006-3-7
收藏
得分:0 
但我还没有学数据结构啊 有其他方法么
2006-04-20 11:43
lj_860603
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:714
专家分:0
注 册:2006-1-25
收藏
得分:0 
你已经开始涉及到数据结构了``链表``

我的原则很简单:不做不喜欢的事!
2006-04-20 12:00
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
收藏
得分:0 
准确来说,从数组就已经开始设计数据结构了哈~~~

建议写一些函数屏蔽掉链表的操作就好了,没必要因为对手是链表就害怕。

淘宝杜琨
2006-04-20 12:42
ninanwine
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2006-5-1
收藏
得分:0 

我编这个了只不过第一个学号要按顺序输入!
struct student *insert(struct student *ah,struct student *bh)
{
struct student *pa1,*pa2,*pb1,*pb2;
pa1=pa2=ah;
pb1=pb2=bh;


if(ah==NULL)
{
return(bh);
}
else
while(pb1!=NULL)
{
{
while((pb1->num>pa1->num)&&(pa1->next!=NULL))
{
pa2=pa1;pa1=pa1->next;
}
if(pb1->num<pa1->num)
{
if(ah==pa1)ah=pb1;
else
pa2->next=pb1;
pb2=pb1->next;
pb1->next=pa1;
}
else
{
pa1->next=pb1;pb2=pb1->next;pb1->next=NULL;
}
}
pb1=pb2;
pa1=ah;
}
return(ah);
}可以做个程序先把第一个排序(初步设想的!)


用0-1统治世界!
2006-05-02 04:51
ninanwine
Rank: 1
等 级:新手上路
帖 子:47
专家分:0
注 册:2006-5-1
收藏
得分:0 

我这有很大的毛病,发完才看出来!


用0-1统治世界!
2006-05-02 04:53
–★–
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1512
专家分:0
注 册:2006-5-1
收藏
得分:0 
以下是引用haichuan在2006-4-20 10:46:00的发言:
我在做潭浩强C语言书上的11.8题,就是让两个已经建立的链表按学号排序合并成一个链表,我的思路是:先将第二个链表接在第一个链表的后面,然后再对整个链表使用冒泡法排序,但但考虑到要用到三个指针p1,p2,p3不断后移,比较麻烦,希望大家给些建议,还有什么好的方法么?

楼主您的想法当然没问题啦,但这样编程会被人笑话。
实际上两个有序链合并时,就象按高矮排的两支队伍(男队、
女队)合并一样。可设立2个指针p和q,最初分别指向男1号
和女1号,比较*p,*q的高矮。不失一般性,设*p高,于是让
*p入链,p=p->next。循环之。若出现某女高于男的情况,
则*q入链,q=q->next。继续循环,直到某队列空。此时将
另队剩余的“尾链”挂在总链后部即可。ok?


落霞与孤鹜齐飞,秋水共长天一色! 心有多大,路有多宽。三教九流,鸡鸣狗盗。兼收并蓄,海纳百川。
2006-05-02 05:20
SunShining
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:31
帖 子:2215
专家分:0
注 册:2006-2-17
收藏
得分:0 
以下是引用haichuan在2006-4-20 10:46:00的发言:
我在做潭浩强C语言书上的11.8题,就是让两个已经建立的链表按学号排序合并成一个链表,我的思路是:先将第二个链表接在第一个链表的后面,然后再对整个链表使用冒泡法排序,但但考虑到要用到三个指针p1,p2,p3不断后移,比较麻烦,希望大家给些建议,还有什么好的方法么?

链表如何用冒泡排序


[glow=255,violet,2]闭关修炼ing...[/glow] [FLASH=360,180]http://www./chinaren.swf[/FLASH]
2006-05-02 07:51
论坛
Rank: 3Rank: 3
等 级:新手上路
威 望:6
帖 子:1372
专家分:0
注 册:2006-3-27
收藏
得分:0 
可以,可以,链表也能用泡沫排序,我以前作过,太费事

日出东方,唯我不败! 做任何东西都是耐得住寂寞,任何一个行业要有十年以上的积累才能成为专家
2006-05-02 08:19
快速回复:链表排序问题
数据加载中...
 
   



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

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