中易网

用c语言单链表将一个求交集的函数改成求并集的函数,函数如下

答案:1  悬赏:40  
解决时间 2021-01-17 10:33
  • 提问者网友:喧嚣尘世
  • 2021-01-16 17:21
用c语言单链表将一个求交集的函数改成求并集的函数,函数如下
最佳答案
  • 二级知识专家网友:渡鹤影
  • 2021-01-16 18:56
struct Link *Union(struct Link *head1, struct Link *head2)
{
struct Link *p1 = head1->next, *p2 = head2->next;
struct Link *head, *p, *q;
head = (struct Link *)malloc(sizeof(struct Link));
head->next = NULL;
p = head;
while ((p1 != NULL) && (p2 != NULL))
{
q = (struct Link*)malloc(sizeof(struct Link));
q->next = NULL;
if (p1->data == p2->data)
{
q->data = p1->data;
p1 = p1->next;
p2 = p2->next;
}
else if (p1->data < p2->data)
{
q->data = p1->data;
p1 = p1->next;
}
else
{
q->data = p2->data;
p2 = p2->next;
}
p->next = q;
p = q;
}
if(p1 != NULL){
    while(p1 != NULL){
        q = (struct* Link)malloc(sizeof(struct Link));
        q->next = NULL;
        q->data = p1->data;
        p1 = p1->next;
        p->next = q;
        p = q;
    }
}else if(p2 != NULL){
    q = (struct* Link)malloc(sizeof(struct Link));
        q->next = NULL;
        q->data = p2->data;
        p2 = p2->next;
        p->next = q;
        p = q;
}
return head;
}
//适用于p1,p2链表都没有重复data的情况
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息