数据结构简单问题,求高手帮忙~~~
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)? 展开
/*将两个循环单链表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)? 展开
2个回答
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);
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);
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询