已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
集合的并交差运算 数据结构课程设计 #includelt;string.hgt;#includelt;stdio.hgt;#includelt;malloc.hgt;#includelt;stdlib.hgt;#define OK 1#define ERROR 0#define TRUE 1#define FALSE 0#define INFEASIBLE -1#define OVERFLOW -2#define NULL 0#define LIST_INIT_SIZE 100 #define LISTINCREMENT 10 typedef int Status;typedef char ElemType;typedef structElemType *elem; int length; int listsize;SqList;Status InitList(SqList amp;l)l.elem=(ElemType*)malloc(LIST_INIT_SIZE*sizeof(ElemType);if(!l.elem) exit(OVERFLOW);l.length=0;l.listsize=LIST_INIT_SIZE;return OK;int ListLength(SqList l)return(l.length);Status ListInsert_Sq(SqList amp;L,int i, ElemType e)/在顺序表L的第i个位置前插入元素e,i的合法值为1.L.length+1if(ilt;1|igt;L.length+1) return ERROR; if(L.lengthgt;=L.listsize) ElemType*newbase=(ElemType *)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType);if(!newbase) exit(OVERFLOW); L.elem=newbase; L.listsize+=LISTINCREMENT;ElemType *q=amp;L.elemi-1, *p=amp;L.elemL.length-1;while(pgt;=q) *(p+1)=*p; -p; /插入位置后的元素右移*q=e;+L.length;return OK;Status CreatSqList(SqList amp;l,ElemType a,int n)int len=ListLength(l);for(int i=0;ilt;n;i+)if(aigt;=#39;a#39;amp;amp;ailt;=#39;z#39;)ListInsert_Sq(l,+len,ai);return OK;Status GetElem(SqList L,int i,ElemType amp;e)if(ilt;=0|igt;L.length)return ERROR;elsee=*(L.elem+i-1);return OK;Status equal(ElemType e1,ElemType e2)if(e1=e2)return TRUE; else return FALSE; int LocateElem_Sq(SqList L, ElemType e, Status (*compare)(ElemType,ElemType)ElemType *p=L.elem; /p指向第一个元素int i=1; /i始终为p所指向元素的位序while(ilt;=L.lengthamp;amp;!(*compare)(*p+,e)+i;if(ilt;=L.length) return(i);else return 0;Status ListDelete(SqList amp;L,int i,ElemType amp;e)/在顺序表中删除第个元素,用返回其值if(ilt;1|igt;L.length) return ERROR;/删除位置不合理ElemType *p=amp;L.elemi-1,*q=L.elem+L.length-1;e=*p;while(plt;q)*p=*(p+1); +p; /删除位置后的元素左移-L.length;return OK;void Union(SqList amp;La,SqList Lb)/将所有在线性表Lb中而不在La中的元素插入Laint la_len , lb_len;ElemType e;la_len=ListLength(La);lb_len=ListLength(Lb);for(int i=1;ilt;=lb_len;+i)GetElem(Lb,i,e);if(LocateElem_Sq(La,e,equal)=0)ListInsert_Sq(La,+la_len,e);Status JiaoJi(SqList l1,SqList l2, SqList amp;l3)int l1_len, l2_len,l3_len,i=1,j=1;ElemType e,u;l1_len=ListLength(l1);l2_len=ListLength(l2);l3_len=ListLength(l3);for(i=1;ilt;=l1_len;i+)GetElem(l1, i,e);for(j=l2_len;jgt;=1;j-)GetElem(l2,j,u);if(e=u)ListInsert_Sq(l3,+l3_len,u);break;elsecontinue;return OK;Status ChaJi(SqList amp;l1,SqList l2)SqList lc;int count=0,lc_len,l1_len,l2_len;ElemType e,u,f;InitList(lc);JiaoJi(l1,l2,lc);lc_len=ListLength(lc);l1_len=ListLength(l1);l2_len=ListLength(l2);for(int i=1;ilt;=lc_len;i+)GetElem(lc,i,e);for(int j=1;jlt;=l1_len;j+)GetElem(l1,j,u);if(u=e)ListDelete(l1,j,f);return OK;void Outputlist(SqList amp;L)if(0=L.length)printf(quot;空集!quot;);elsefor(int i=0;ilt;L.length;+i)printf(quot;%cquot;,*(L.elem+i);void main()system(quot;title 集合的并交叉运算quot;);for(1;)system(quot;color a1quot;);int c;printf(quot;*nquot;);printf(quot; # 执行程序: 1 # 退出程序: 2nquot;);printf(quot;*nquot;);printf(quot;请按键选择: quot;);scanf(quot;%dquot;,amp;c);getchar();printf(quot;nquot;);if(c=1)SqList l1,l2,l3,la;int n1,n2,i,j;char a130, a230;InitList(l1);InitList(l2);InitList(l3);InitList(la);printf(quot;请输入第一个集合: quot;);gets(a1);n1=strlen(a1);for(i=n1-1;igt;=0;i-) /从最后一个开始依次与前面的比较 重复赋值为0for(j=0;jlt;i;j+)if(a1j=a1i)a1i=0;CreatSqList(l1,a1,n1);la=l1;printf(quot;请输入第二个集合: quot;);gets(a2);n2=strlen(a2);for(i=n2-1;igt;=0;i-) /同上for(j=0;jlt;i;j+)if(a1j=a1i)a1i=0;CreatSqList(l2,a2,n2);printf(quot;集合的交集是: quot;);JiaoJi(l1,l2,l3);Outputlist(l3);printf(quot;nquot;);printf(quot;集合的并集是: quot;);Union(l1,l2)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 江苏中烟工业有限责任公司考试真题2025
- 企业文化建设与员工激励机制创新方案
- 光伏电站环境监测员岗位职业素养培训
- 矿山安全防护工班组管理测试考核试卷含答案
- 名贵钟表鉴定师岗前理论技能考核试卷含答案
- 从实践经验到职业发展医护人才招募的策略与方法
- 医疗急救员技能培训课程表
- Oracle技术顾问工作流程优化与效率提升方案
- 办公室设备使用及维护管理手册
- 2026-2031中国金融租赁市场调研报告
- 装修工程 投标方案(技术方案)
- 基层卫生岗位练兵和技能竞赛试题及答案全科医疗组
- DL∕T 1844-2018 湿式静电除尘器用导电玻璃钢阳极检验规范
- 提高五金品质计划书
- 《基础工程》 课件全套 刘汉东 第1-7章 绪论;天然地基上浅基础的常规设计- 特殊土地基
- 精神病监护人责任承诺书
- 居家养老服务中心投标方案
- 乳突根治术后护理查房
- 清华大学接受国内访问学者申请表
- QC19032201 质量控制分析报告 输入功率 输入电流 功率因数试验
- 超星尔雅《葡萄酒与西方文化》期末考试答案
评论
0/150
提交评论