集合的并运算。帮下忙
我用的单链表做的集合并运算,,集合A和B 最后求的结果放在B;我用的是WIN-TC;代码如下#include <stdio.h>
#include <stdlib.h>
struct set
{
int info;
struct set *next;
};
void createlist(struct set*p,int n)
{
int i;
struct set *L;
p=(struct set*)malloc(sizeof(struct set));
p->next=NULL;
for(i=0;i<n;i++)
{
L=(struct set*)malloc(sizeof(struct set));
printf("please input:\n");
getch();
scanf("%d",&L->info);
L->next=p->next;
p->next=L;
}
}
void printlist(struct set *p)
{
struct set *L;
for(L=p->next;L!=NULL;L=L->next)
{
printf("%d",&L->info);
getch();
}
}
void addset(struct set *p,struct set *q)
{
int count=0;
struct set *k,*m,*n;
k=p->next;
m=q->next;
for(k=p->next;k!=NULL;k=k->next)
{
for(m=q->next;m!=NULL;m=m->next)
if(k->info==m->info)
{ count=1;
break;
}
if(count==0)
{
n=(struct set*)malloc(sizeof(struct set));
n->info=k->info;
n->next=q->next;
q->next=n;
}
}
}
void main()
{
int n;
struct set p,q;
printf("yuansu geshu;\n");
getch();
scanf("%d",&n);
createlist(&p,n);
printlist(&p);
printf("yuansu geshu;\n");
getch();
scanf("%d",&n);
createlist(&q,n);
printlist(&q);
addset(&p,&q);
printlist(&q);
getch();
}
总是感觉printlist这个函数有错误,,求达人解析。。不胜感激