收藏 分享(赏)

c语言实现的链表集合的并集与交集.doc

上传人:精品资料 文档编号:10715393 上传时间:2019-12-31 格式:DOC 页数:4 大小:15.75KB
下载 相关 举报
c语言实现的链表集合的并集与交集.doc_第1页
第1页 / 共4页
c语言实现的链表集合的并集与交集.doc_第2页
第2页 / 共4页
c语言实现的链表集合的并集与交集.doc_第3页
第3页 / 共4页
c语言实现的链表集合的并集与交集.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

1、#include#includetypedef int Datatype;/定义链表的节点typedef struct LNodeDatatype data;LNode *next;LNode,*LinkList;bool InitLink(LinkList if(L=NULL)return false;L-next=NULL;return true;bool InsertData(LinkList while(pa-next!=NULL)pa=pa-next;LinkList p=(LinkList)malloc(sizeof(LNode);/新建数据节点if(p=NULL)printf(“

2、插入数据失败n“);return false;p-data=data;p-next=NULL;if(pa=NULL)pa=p;elsepa-next=p;return true;void createLink(LinkList Datatype data;scanf(“%d“,while(data!=00)InsertData(L,data);scanf(“%d“,void printLink(LinkList L)/打印链表LinkList p=L-next;while(p!=NULL)printf(“%d “,p-data);p=p-next;printf(“n“);bool merger

3、(LinkList La,LinkList Lb,LinkList pb=Lb-next; /用于循环pa=La-next;while(pa!=NULL) /以 La 为基础链,若 B 中的数据在 A 链中不存在,则插入到 Lc 中InsertData(Lc,pa-data);pa=pa-next; /pos 表示 la 链中最后一个数据节点,用于插入数据 bool flag=false; while(pb!=NULL) pa=La-next;flag=false; /用于判断 B 中的数据是否在 A 中存在while(pa!=NULL)if(pa-data=pb-data)flag=fals

4、e;break; /如果存在,则本次循环结束elseflag=true;pa=pa-next; /pa 向后移动if(flag)/* LinkList p=(LinkList)malloc(sizeof(LNode); /注释的代码是用于将 A 和 B 合并之后存放在 A 中 if(p=NULL)printf(“插入数据失败n“);return false;p-data=pb-data;p-next=NULL;pos-next=p;pos=p;*/InsertData(Lc,pb-data); /将 B 中的数据插入到 Lc 中pb=pb-next;return true;bool Inter

5、section(LinkList La,LinkList Lb,LinkList pb=Lb-next;while(pb!=NULL)pa=La-next;while(pa!=NULL)if(pa-data=pb-data) /求交集时,只需找到两个链中共同的数据,插入到 Lc 中即可InsertData(Lc,pa-data);pa=pa-next;pb=pb-next;return true;int main()LinkList La,Lb,Lc;if(!InitLink(La)printf(“初始化链表失败“);exit(1);if(!InitLink(Lb)printf(“初始化链表失

6、败“);exit(1);if(!InitLink(Lc)printf(“初始化链表失败“);exit(1);printf(“创建第一条链表n“);createLink(La);printf(“创建第二条链表n“);createLink(Lb);printf(“链表中的数据为n“);printf(“La: “);printLink(La);printf(“Lb: “);printLink(Lb);printf(“链表求并集n“);merger(La,Lb,Lc);printf(“合并之后链表中的数据为n“);printLink(Lc);printf(“链表求交集n“);if(!InitLink(Lc)printf(“初始化链表失败“);exit(1);Intersection(La,Lb,Lc);printf(“求交之后链表中的数据为n“);printLink(Lc);return(0);

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报