求找错!!那个uni()函数错了,但是我找不到,求大神帮助!3Q
本帖最后由 zyz_happying 于 2013-03-21 23:02:57 编辑 求找错!!那个uni()函数错了,但是我找不到,求大神帮助
#include<stdio.h>
#include<stdlib.h>
typedef int ElemType;
typedef struct LNode
{
ElemType data;
LNode *next;
}LNode,*LinkList;
int Initial(LinkList &L)
{
L=(LinkList)malloc(sizeof(LNode));
if(L==NULL)
return 0;
L->next=NULL;
return 1;
}
int Insert(LinkList &L,ElemType data)
{
LinkList pa=L;
while(pa->next!=NULL)
{
pa=pa->next;
}
LinkList p=(LinkList)malloc(sizeof(LNode));
p->data=data;
p->next=NULL;
if(pa==NULL)
pa=p;
else
pa->next=p;
return 1;
}
void create(LinkList &L)
{
printf("请输入要插入的数据,以0结束!\n");
ElemType data;
scanf("%d",&data);
while(data!=0)
{
Insert(L,data);
scanf("%d",&data);
}
}
void print(LinkList L)
{
LinkList p=L->next;
while(p!=NULL)
{
printf("%d ",p->data);
p=p->next;
}
printf("\n");
}
int uni(LinkList La,LinkList Lb,LinkList &Lc)
{
LinkList pa,pb;
pb=Lb->next;
while(pb!=NULL)
{
Insert(Lc,pb->data);
pb=pb->next;
}
pb=Lb->next;
while(pb!=NULL)
{
pa=La->next;
while(pa!=NULL)
{
if(pa->data!=pb->data)
{
Insert(Lc,pa->data);
break;
}
pa=pa->next;
}
pb=pb->next;
}
return true;
}
int Intersection(LinkList La,LinkList Lb,LinkList &Lc)
{
LinkList pa,pb;
pb=Lb->next;
while(pb!=NULL)
{
pa=La->next;
while(pa!=NULL)
{
if(pa->data==pb->data)
{
Insert(Lc,pa->data);
}
pa=pa->next;
}
pb=pb->next;
}
return true;
}
int main()
{
LinkList La,Lb,Lc;
if(!Initial(La)){
printf("初始化链表失败!\n");
exit(1);
}
if(!Initial(Lb)){
printf("初始化链表失败!\n");
exit(1);
}
if(!Initial(Lc)){
printf("初始化链表失败!\n");
exit(1);
}
printf("请输入第一条链表:\n");
create(La);
printf("请输入第二条链表:\n");
create(Lb);
printf("链表中的数据为:\n");
printf("La: ");
print(La);
printf("Lb: ");
print(Lb);
Intersection(La,Lb,Lc);
printf("求交集后链表为:\n");
print(Lc);
uni(La,Lb,Lc);
printf("求并集后链表为:\n");
print(Lc);
return(0);
}
struct insert
[解决办法]