数据结构简单问题,求高手帮忙~~~

LinkListUnionLinkList(LinkList*head1,LinkList*head2)/*将两个循环单链表head1和head2连接在一起形成一个循环单... LinkList UnionLinkList(LinkList *head1,LinkList *head2)
/*将两个循环单链表head1和head2连接在一起形成一个循环单链表*/
{
LinkList *p=head1->next,*q=head2->next,*head3,*s,*r;
head3=(LinkList *)malloc(sizeof(LinkList)); //初始化head3头结点
head3->next=NULL;
r=head3;
while(p->next!=head1)
{ s=(LinkList *)malloc(sizeof(LinkList));
s->data=p->data;
r->next=s;
s->next=NULL;
r=s;
p=p->next;
}
while(q->next!=head2)
{ s=(LinkList *)malloc(sizeof(LinkList));
s->data=q->data;
r->next=s;
s->next=NULL;
r=s;
}
r->next=head3; //r是合并后单链表的最后一个结点,再指向head3的头结点表成循环链表,这样的操作对吗?
return head3; //返回linklist类型的地址
}
------------------------------------分割线------------------------
求高手帮我看看程序有没有错误,我还想知道这样返回值为LinkList类型的怎么调用.....难为是LC=UnionLinkList(LA,LB)?
展开
 我来答
匿名用户
2010-06-04
展开全部
UnionLinkList()函数应该修改为:

LinkList *UnionLinkList(LinkList *head1,LinkList *head2)/*注意这里*/

{
LinkList *p=head1->next,*q=head2->next,*head3,*s,*r;
head3=(LinkList *)malloc(sizeof(LinkList));
head3->next=NULL;
r=head3;
while(p!=head1) /*注意这里*/
{ s=(LinkList *)malloc(sizeof(LinkList));
s->data=p->data;
r->next=s;
s->next=NULL;
r=s;
p=p->next;
}
while(q!=head2)/*注意这里*/
{ s=(LinkList *)malloc(sizeof(LinkList));
s->data=q->data;
r->next=s;
s->next=NULL;
r=s;
q=q->next;/*注意这里*/
}
r->next=head3;
return head3;
}

***************************************************

调用时应该用:

LinkList *l3;

l3=UnionLinkList(l1,l2);
fallx
2010-06-04 · TA获得超过5485个赞
知道大有可为答主
回答量:2321
采纳率:73%
帮助的人:711万
展开全部
LinkList LA,LB,LC;
.....;//初始化LA,LB;
LC=UnionLinkList(LA,LB);
//就OK了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式