集合的交并操作求帮忙

#include <stdio.h>
#include <stdlib.h>
#define OK 1
typedef int Status;
typedef struct LNode
{
	int data;
	struct LNode *next;
}LNode,*LinkList;

LinkList InitList()
{//建立链表
	LinkList L, p,q;
	int d;
	L = (LinkList)malloc(sizeof(LNode));
	p = L;
	scanf("%d", &d);
	while (d != 0)
	{
	    p=p->next=(LinkList)malloc(sizeof(LNode));
		p->data = d;
		scanf("%d", &d);
	}
	p->next=NULL;
	q=L;
	L=L->next;
	free(q);
	return L;
}

LinkList Intersection(LinkList a, LinkList b)
{//求交集
	LinkList LA, LB,q;
	LA =(LinkList)malloc(sizeof(LNode));
	LB = LA;
	while (a!=NULL)
	{
	    q=b;
		while (q!=NULL)
		{
			if (q->data == a->data)
			{
				LB=LB->next=(LinkList)malloc(sizeof(LNode));
				LB->data = a->data;
				break;
			}
			q = q->next;
		}
		a = a->next;
	}
	LB->next=NULL;
	LinkList p;
	p = LA;
	LA = LA->next;
	free(p);
	return LA;
}

LinkList Unionset(LinkList a, LinkList b)
{//求并集
	LinkList L,q;
	L=b;
	while (a!=NULL)
	{
		while (b)
		{
		    q=b;
			if(a->data==b->data)
				break;
			b=b->next;
		}
		if(b==NULL)
        {
            q=q->next=(LinkList)malloc(sizeof(LNode));
            q->data=a->data;
            q->next=NULL;
        }
        b=L;
		a=a->next;
	}
	return L;
}

Status traverselist(LinkList a)
{//遍历链表
    while(a!=NULL)
    {
        printf("%3d",a->data);
        a=a->next;
    }
    return OK;
}

int main()
{
	LinkList A,B,INT,UNION;
	printf("请输入集合A的值(输入0结束):");
	A = InitList();
	printf("请输入集合B的值(输入0结束):");
    B = InitList();
	INT=Intersection(A,B);
    printf("\n所求交集为:");
	traverselist(INT);
	UNION=Unionset(A,B);
	printf("\n所求并集为:");
	traverselist(UNION);
	return 0;
}

求问怎么把以0结尾改成以#结尾,而且怎么改成也可以输入字母的程序,求代码

typedef struct LNode
{
	int data;
	struct LNode *next;
}LNode,*LinkList;

//改为char类型就可以了
typedef struct LNode
{
	char data;
	struct LNode *next;
}LNode,*LinkList;

 

您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~

如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~

ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632