1 / 9
文档名称:

C语言实现集合的交-并-差.doc

格式:doc   大小:34KB   页数:9页
下载后只包含 1 个 DOC 格式的文档,没有任何的图纸或源代码,查看文件列表

如果您已付费下载过本站文档,您可以点这里二次下载

分享

预览

C语言实现集合的交-并-差.doc

上传人:梅花书斋 2020/2/12 文件大小:34 KB

下载得到文件列表

C语言实现集合的交-并-差.doc

文档介绍

文档介绍:【问题描述】编制一个能演示执行集合的并、交和差运算的程序【基本要求】(1)集合的元素限定为小写字母字符['a'......'z'](2)演示程序以用户和计算机对话的方式执行【测试数据】【实现提示】以有序链表表示集合【代码过程】1。先定义集合的数据类型//typedefstructLNode...{ElemTypedata;LNode*next;}*Link,*Position;typedefstruct...{Linkhead,tail;intlen;}LinkSet;//~2。以后要用的一些常量放在#include<>#include<>#include<>//函数结果状态代码#RUE1#defineFALSE0#defineOK1#defineERROR0#defineINFEASIBLE-1#defineOVERFLOW-2#defineElemTypeint//存放数据的类型typedefintStatus;//函数的返回值//~3。集合实现函数/**//******************函数定义*********************/StatusInitSets(LinkSet&ls)...{//初始化集合=(Link)malloc(sizeof(Link));=(Link)malloc(sizeof(Link));if(!||!)exit(OVERFLOW);//如果分配失败>next=>next=NULL;//头、尾指针为空=0;//长度为0returnOK;}StatusCreateNode(Link&link,ElemTypee)...{//创建一节点,内容为elink=(Link)malloc(sizeof(Link));if(!link)exit(OVERFLOW);link->data=e;//值设定link->next=NULL;//指向空returnOK;}PositionPriorInsertNode(LinkSet&ls,Link&link)...{//找出节点link要插入到ls的前一个节点if(!>next)return;Linkh1=>next,h2=h1->next;//h1:前一节点,h2:前一节点的后一节点if(link->data<h1->data)return;//如果比第一个节点小,返回头指针while(h1&&h2)...{if(h1->data<(link->data)&&h2->data>(link->data))//如果>h1&&<h2,说明找到插入的地方了break;if(h1->data==(link->data)||h2->data==(link->data))returnNULL;//如果重复,返回NULLelse//否则,顺次往后挪一个节点h1=h2,h2=h1->next;}returnh1;}StatusAppend(LinkSet&ls,Link&link)...{//向集合末尾追加节点if(>next==NULL)>next=link;else>next->next=link;>next=link;++;returnOK;}StatusInsertNode(LinkSet&ls,Link&link)...{//向集合中插入节点Positionp=PriorInsertN