ImageVerifierCode 换一换
格式:DOCX , 页数:9 ,大小:15.94KB ,
资源ID:4299035      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/4299035.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(集合的并交差运算数据结构课程设计.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

集合的并交差运算数据结构课程设计.docx

1、集合的并交差运算数据结构课程设计集合的并交差运算 数据结构课程设计 #include<string.h>#include<stdio.h>#include<malloc.h>#include<stdlib.h>#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 i

2、nt Status;typedef char ElemType;typedef structElemType *elem; int length; int listsize;SqList;Status InitList(SqList &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);Stat

3、us ListInsert_Sq(SqList &L,int i, ElemType e)/在顺序表L的第i个位置前插入元素e,i的合法值为1.L.length+1if(i<1|i>L.length+1) return ERROR; if(L.length>=L.listsize) ElemType*newbase=(ElemType *)realloc(L.elem,(L.listsize+LISTINCREMENT)*sizeof(ElemType);if(!newbase) exit(OVERFLOW); L.elem=newbase; L.listsize+=

4、LISTINCREMENT;ElemType *q=&L.elemi-1, *p=&L.elemL.length-1;while(p>=q) *(p+1)=*p; -p; /插入位置后的元素右移*q=e;+L.length;return OK;Status CreatSqList(SqList &l,ElemType a,int n)int len=ListLength(l);for(int i=0;i<n;i+)if(ai>='a'&&ai<='z')ListInsert_Sq(l,+len,ai

5、);return OK;Status GetElem(SqList L,int i,ElemType &e)if(i<=0|i>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;

6、/p指向第一个元素int i=1; /i始终为p所指向元素的位序while(i<=L.length&&!(*compare)(*p+,e)+i;if(i<=L.length) return(i);else return 0;Status ListDelete(SqList &L,int i,ElemType &e)/在顺序表中删除第个元素,用返回其值if(i<1|i>L.length) return ERROR;/删除位置不合理ElemType *p=&L.elemi-1,*q=L.elem+L.length-1;e=*p;whi

7、le(p<q)*p=*(p+1); +p; /删除位置后的元素左移-L.length;return OK;void Union(SqList &La,SqList Lb)/将所有在线性表Lb中而不在La中的元素插入Laint la_len , lb_len;ElemType e;la_len=ListLength(La);lb_len=ListLength(Lb);for(int i=1;i<=lb_len;+i)GetElem(Lb,i,e);if(LocateElem_Sq(La,e,equal)=0)ListInsert_Sq(La,+la_len,e);Status

8、 JiaoJi(SqList l1,SqList l2, SqList &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;i<=l1_len;i+)GetElem(l1, i,e);for(j=l2_len;j>=1;j-)GetElem(l2,j,u);if(e=u)ListInsert_Sq(l3,+l3_len,u);break;elsecontinue; return

9、OK;Status ChaJi(SqList &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;i<=lc_len;i+)GetElem(lc,i,e);for(int j=1;j<=l1_len;j+)GetElem(l1,j,u);if(u=e)ListDelete

10、(l1,j,f);return OK;void Outputlist(SqList &L)if(0=L.length)printf("空集!");elsefor(int i=0;i<L.length;+i)printf("%c",*(L.elem+i);void main()system("title 集合的并交叉运算");for(1;)system("color a1");int c;printf("*n");printf(" # 执行程序: 1 # 退出程序: 2n&

11、quot;);printf("*n");printf("请按键选择: ");scanf("%d",&c);getchar();printf("n");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("请输入第一个集合: ");gets(a1);n1=strlen(a1);for(i=n1-1;i>=0;

12、i-) /从最后一个开始依次与前面的比较 重复赋值为0for(j=0;j<i;j+)if(a1j=a1i)a1i=0;CreatSqList(l1,a1,n1);la=l1;printf("请输入第二个集合: ");gets(a2);n2=strlen(a2);for(i=n2-1;i>=0;i-) /同上for(j=0;j<i;j+)if(a1j=a1i)a1i=0;CreatSqList(l2,a2,n2);printf("集合的交集是: ");JiaoJi(l1,l2,l3);Outputlist(l3);printf("n");printf("集合的并集是: ");Union(l1,l2);Outputlist(l1);printf("n");printf("集合的差集是: ");ChaJi(la,l2);Outputlist(la);printf("nn*按任意键清屏!*");system("pause>null");system("cls");elseexit(0);

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1