| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 565 人关注过本帖
标题:链表操作
只看楼主 加入收藏
howema
Rank: 1
等 级:新手上路
帖 子:336
专家分:0
注 册:2005-10-4
结帖率:50%
收藏
 问题点数:0 回复次数:7 
链表操作

如何将两个链表合并且以升序排列成一个链表?

搜索更多相关主题的帖子: 链表 
2006-12-09 11:09
longerhe
Rank: 1
等 级:新手上路
帖 子:120
专家分:0
注 册:2006-10-10
收藏
得分:0 

首先将第一个链表排序,然后将第二个链表的结点插入到第一个链表中。

2006-12-09 12:01
爱上夜
Rank: 1
等 级:新手上路
帖 子:33
专家分:0
注 册:2006-9-12
收藏
得分:0 
先第一个链表的尾结点的指针指向第二个链表的头结点,然后在排序

2006-12-09 12:07
howema
Rank: 1
等 级:新手上路
帖 子:336
专家分:0
注 册:2005-10-4
收藏
得分:0 
有代码吗??
2006-12-10 19:43
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
以下是引用longerhe在2006-12-9 12:01:05的发言:

首先将第一个链表排序,然后将第二个链表的结点插入到第一个链表中。

应该两个链表都得先排好序.


倚天照海花无数,流水高山心自知。
2006-12-10 19:54
nuciewth
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:我爱龙龙
等 级:贵宾
威 望:104
帖 子:9786
专家分:208
注 册:2006-5-23
收藏
得分:0 
以下是引用howema在2006-12-10 19:43:53的发言:
有代码吗??

我有个,不过是先确保两个链表已经是有序情况下才可以做,楼主也可以先用排序将链表排好序,再调用这个函数.

nodelink link_head12(nodelink head1,nodelink head2)/*让head1和head2的数合并*/
{
nodelink p,r,head3;
head3=(nodelink)malloc(sizeof(node));/*建head3表*/
head3->next=NULL;
r=head3;
while(head1->next&&head2->next)
{
if(head1->next->info<head2->next->info)
{
p=head1->next;
head1->next=p->next;
p->next=NULL;
r->next=p;
r=r->next;
}
else
{
p=head2->next;
head2->next=p->next;
p->next=NULL;
r->next=p;
r=r->next;
}
}
if(head1->next!=NULL)
{
r->next=head1->next;

}
else if(head2->next!=NULL)
{

r->next=head2->next;
}
else
{
r->next=NULL;
}
return head3;
}


倚天照海花无数,流水高山心自知。
2006-12-10 19:56
秋阁
Rank: 1
等 级:新手上路
帖 子:31
专家分:0
注 册:2006-7-15
收藏
得分:0 
如果对时间复杂度不作要求,怎么排都可以
2006-12-11 14:06
shengwumozhe
Rank: 1
等 级:新手上路
帖 子:54
专家分:0
注 册:2006-10-24
收藏
得分:0 
还是感觉先连接再排序比较好.
事先排好序连接后一般情况下还是有很大的操作时间.

自信,微笑^_^
2006-12-11 17:26
快速回复:链表操作
数据加载中...
 
   



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

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