首页    新闻    小组    威客    人才    下载    博客    代码贴    在线编程    论坛
Merge函数该怎么写,把P2中的数据插入到head3中

Y222017-05-31 21:19 发布

#include<stdio.h>
#include<stdlib.h>
typedef struct Node
{
    char data;
    struct Node*next; 
}*linklist;
void readdata(linklist head)

linklist p;
    char a;
    scanf("%c",&a);
    while(a!='\n'&&a>='a'&&a<='z')

        p=(linklist)malloc(sizeof(struct Node));
        p->data=a;
        p->next=head->next;
        head->next=p;
        scanf("%c",&a);
}
}
void pop(linklist head)

linklist p;
    p=head->next;
    while(p!=NULL)

        printf("%c",p->data);
        p=p->next;
}
    printf("\n");
}
void Insection(linklist head1,linklist head2,linklist head3) 

    linklist p1,p2,p3;
    p1=head1->next;
    while(p1!=NULL)

        p2=head2->next;
        while((p2!=NULL)&&(p2->data!=p1->data))
p2=p2->next;
if((p2!=NULL)&&(p2->data==p1->data))

p3=(linklist)malloc(sizeof(struct Node));
            p3->data=p1->data;
            p3->next=head3->next;
            head3->next=p3; 
}
        p1=p1->next; 

}
void Deprive(linklist head1,linklist head2,linklist head3)

linklist p1,p2,p3;
    p1=head1->next;
    while(p1!=NULL)

p2=head2->next;
while((p2!=NULL)&&(p2->data!=p1->data))
p2=p2->next;
if(p2==NULL)

            p3=(linklist)malloc(sizeof(struct Node));
            p3->data=p1->data;
            p3->next=head3->next;
            head3->next=p3;
}
        p1=p1->next;
}
}
void Merge(linklist head1,linklist head2,linklist head3)

linklist p1,p2,p3;
    p1=head1->next;
    p2=head2->next;
    Deprive(head1,head2,head3);
}
void main(linklist head1,linklist head2,linklist head3)

    int x;
    printf("输入完成后请按回车键\n");
    head1=(linklist)malloc(sizeof(struct Node)); 
    head1->next=NULL;
    head2=(linklist)malloc(sizeof(struct Node));
    head2->next=NULL;
    head3=(linklist)malloc(sizeof(struct Node));
    head3->next=NULL;
    printf("请输入集合一\n");
    readdata(head1); 
    printf("请输入集合二 \n");
    readdata(head2);
    A:printf("1.交集 2.并集 3.差集 4.退出\n");
   do{ 
   printf("请选择序号\n");
   scanf("%d",&x);
   switch(x)
   { 
   case 1:
   printf("两个集合的交集是\n");
   Insection(head1,head2,head3);
           pop(head3);
           head3->next=NULL;
   break;
       case 2:
   printf("两个集合的并集是 \n");
           Merge(head1,head2,head3);
           pop(head3);
           head3->next=NULL;
           break;
       case 3:
           printf("两个集合的差集是\n");
           Deprive(head1,head2,head3);
           pop(head3);
           head3->next=NULL;
           break;
       case 4: break;
       default:goto A; 
   }
   }while(x!=4);
}
 
 
最新话题:

毕业(真实版本)堪萨斯州立大学毕业证...

毕业(真实版本)丹佛大学毕业证书-|DU...

毕业(真实版本)加州大学河滨分校毕业...

毕业(真实版本)爱荷华州立大学毕业证...

const char

帮我改下错误

请教下怎么修改cpp(10) : error C218...

Merge函数该怎么写,把P2中的数据插...