c语言实现集合地交,并,差

c语言实现集合地交,并,差

ID:37407763

大小:52.50 KB

页数:9页

时间:2019-05-23

c语言实现集合地交,并,差_第1页
c语言实现集合地交,并,差_第2页
c语言实现集合地交,并,差_第3页
c语言实现集合地交,并,差_第4页
c语言实现集合地交,并,差_第5页
资源描述:

《c语言实现集合地交,并,差》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、实用文案【问题描述】编制一个能演示执行集合的并、交和差运算的程序【基本要求】(1)集合的元素限定为小写字母字符['a'......'z'](2)演示程序以用户和计算机对话的方式执行【测试数据】【实现提示】以有序链表表示集合【代码过程】1。先定义集合的数据类型notes.h//notes.htypedefstructLNode...{ElemTypedata;LNode*next;}*Link,*Position;typedefstruct...{Linkhead,tail;intlen;}LinkSet;//~2。以后要用的一些常量放在constValues.h#include

2、io.h>#include#include//函数结果状态代码#defineTRUE1#defineFALSE0#defineOK1#defineERROR0#defineINFEASIBLE-1#defineOVERFLOW-2#defineElemTypeint//存放数据的类型typedefintStatus;//函数的返回值//~3。集合实现函数setsFun.h/**//******************函数定义*********************/StatusInitSets(LinkSet&ls)...{标准文档实用文案//

3、初始化集合ls.head=(Link)malloc(sizeof(Link));ls.tail=(Link)malloc(sizeof(Link));if(!ls.head

4、

5、!ls.tail)exit(OVERFLOW);//如果分配失败ls.head->next=ls.tail->next=NULL;//头、尾指针为空ls.len=0;//长度为0returnOK;}StatusCreateNode(Link&link,ElemTypee)...{//创建一节点,内容为elink=(Link)malloc(sizeof(Link));if(!link)exit(OVERFLOW);

6、link->data=e;//值设定link->next=NULL;//指向空returnOK;}PositionPriorInsertNode(LinkSet&ls,Link&link)...{//找出节点link要插入到ls的前一个节点if(!ls.head->next)returnls.head;Linkh1=ls.head->next,h2=h1->next;//h1:前一节点,h2:前一节点的后一节点if(link->datadata)returnls.head;//如果比第一个节点小,返回头指针while(h1&&h2)...{if(h1->data<(link-

7、>data)&&h2->data>(link->data))//如果>h1&&data==(link->data)

8、

9、h2->data==(link->data))returnNULL;//如果重复,返回NULLelse//否则,顺次往后挪一个节点h1=h2,h2=h1->next;}returnh1;}StatusAppend(LinkSet&ls,Link&link)...{//向集合末尾追加节点if(ls.head->next==NULL)ls.head->next=link;elsels.tail->next->next=l

10、ink;ls.tail->next=link;ls.len++;标准文档实用文案returnOK;}StatusInsertNode(LinkSet&ls,Link&link)...{//向集合中插入节点Positionp=PriorInsertNode(ls,link);if(!p)returnERROR;//如果集合中已有相应元素link->next=p->next;if(!p->next)ls.tail->next=link;//如果前一节点为尾节点,修改tailp->next=link;ls.len++;returnOK;}PositionPriorNode(LinkSet&l

11、s,Link&link)...{//返回集合中该节点的前一节点,不存在返回NULLintj=0;Linkpre,h=ls.head;while(h->next&&j<=ls.len&&h!=link)...{pre=h;h=h->next;j++;}if(j==0)returnNULL;returnpre;}StatusPrintSets(LinkSet&ls)...{//打印集合Linkh=ls.head->next;printf("[");

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。