| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 932 人关注过本帖
标题:[求助]一道单链表的题
取消只看楼主 加入收藏
Sally_SJL
Rank: 1
等 级:新手上路
威 望:2
帖 子:452
专家分:1
注 册:2006-7-14
结帖率:100%
收藏
 问题点数:0 回复次数:1 
[求助]一道单链表的题

有两个按元素值递增有序的单链表A和B,编一程序将A表和B表归并成一个新的递增有序的单链表C(值相同的元素只保留一个在C表中)

#include <stdio.h>
typedef struct node
{ int data;
struct node *next;
} LINKLIST;

LINKLIST *creat ( *void) ;
merger (LINKLIST *head_a,LINKLIST *head_b,LINKLIST *head_c) ;
void print (LINKLIST *head_c) ;

main()
{ LINKLIST a={1,3,8,19,26};
LINKLIST b={2,3,10,11,19,23,29,35};
LINKLIST *head_a=&a,*head_b=&b;
LINKLIST *head_c;
head_c=creat ();
merger ( head_a, head_b,head_c) ;
print ( head_c);

}

LINKLIST *creat ( *void)
{ LINKLIST *r,*head_c,*last;

r=malloc (sizeof(LINKlIST)); // 建立表头节点
head_c=r;last=r;
t->next=NULL;
return (head_c);
}

merger(LINKLIST *head_a,LINKLIST *head_b,LINKLIST *head_c) // 合并链表
{ LINKLIT *p,*q,*r,*last;
p=head_a,q=head_b,r=head_c ,last=r;
while (p!=NULL&&q!=NULL)
{ r=malloc(sizeof(LINKLIST));
if (p->data<q->data)
{
r->data=p->data;
last->next=r;
last=r;
r->next=NULL;
p=p->next;
r=r->next; //这里好象很有问题,因为后面没有节点了,可是不知道该怎么弄
}
else if (p->data>q->data)
{
r->data=q->data)
last->next=r;
last=r;
t->next=NULL;
q=q->next;
r=r->next;

}
else {
r->data=p->data;
last->next=r;
last=r;
t->next=NULL;
p=p->next;
q=q->next;
r=r->next;
}

}

while (p!=NULL)
{ r=malloc (sizeof(LINKLIST));
r->data=p->data;
last->next=r;
last=r;
t->next=NULL;
p=p->next;
r=r->next;
}

while (q!=NULL)
{ r=malloc (sizeof(LINKLIST));
r->data=q->data;
last->next=r;
last=r;
t->next=NULL;
q=q->next;
r=r->next;
}
}

void print (LINKLIST *head_c) // 链表C的输出
{ LINKLIST *r;
printf("The new LINKLIST:\n");
r=head_c;
r=r->next;
while (r!=NULL)
{ printf("%6d",r->data);
r=r->next;
}
}

好象写的很不对,谁能帮我写个,让我对照一下

PS:可以再附加一个问题吗?

点分十进制表示的IP地址131.107.2.89的二进制表示是________

[此贴子已经被作者于2006-10-14 11:08:59编辑过]

搜索更多相关主题的帖子: 单链 
2006-10-14 09:49
Sally_SJL
Rank: 1
等 级:新手上路
威 望:2
帖 子:452
专家分:1
注 册:2006-7-14
收藏
得分:0 
以下是引用论坛在2006-10-14 15:47:12的发言:
点分十进制表示的IP地址131.107.2.89的二进制表示是________


///////////////////////////////////////


10000011011010110000001001011001

答案正确,怎么做的啊?

人生没有彩排,每天都是现场直播~~~
2006-10-14 16:20
快速回复:[求助]一道单链表的题
数据加载中...
 
   



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

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