版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实验一线性表实现与应用一、实验目的1掌握线性表的顺序存储和链接存储结构。2了解线性表的应用。3分析顺序线性表与链接线性表的差异。二、实验内容1.利用顺序线性表实现集合运算AUB。2利用向前链表实现集合运算(A-B)U(B-A)。三、实验程序说明1 .假设集合A和B的元素都是整数,并利用两个线性表la和lb分别存放集合A和B的成员。现依次取出lb中的每个元素,按其值查找线性表la,若la中不存在该元素,则将它插入到la中去,最后线性表la就存放了集合AUB的元素。2 .(A-B)U(B-A)是由属于集合A或集合B,但又不同时属于A和B的全部元素组成。我们可以先分别建立由集合A和集合B的元素构成的
2、链表la和lb,然后对lb中每一个元素进行如下处理:在链表la中查找是否有相同元素,若有相同元素,则从la中删除该元素;若没有相同元素,则将此元素插入la中。最后,链表la就存放了(A-B)U(B-A)的全部元素。四、参考程序1./*求集合运算AUB*/#defineMAX100typedefstructcharelementMAX;intnum;LIST;voidcreate(LIST*list)inti,n;printf("Enterthenumberoflist:");scanf("%d",&n);for(i=0;i<n;i+)pri
3、ntf("Enterelement%d:",i+1);scanf("%d",&(list->elementi);list->num=n;intinsert(LIST*list,intm,intx)inti,n;n=list->num;if(n>=MAX)printf("Thelistisoverflow!n");return(-1);elseif(m<1|m>n+1)printf("Error!n");return(-2);elsefor(i=n-1;i>=m-1;
4、i-)list->elementi+1=list->elementi;list->elementm-1=x;list->num=n+1;return(0);intlocate(LIST*list,intx)inti;for(i=0;i<=list->num-1;i+)if(list->elementi=x)return(i+1);return(0);voidprint_list(LIST*list)inti,n;n=list->num;if(n=0)printf("Thelistisempty.n");elsefor(i=0;
5、i<=n-1;i+)printf("%dt",list->elementi);printf("n");main()LIST*la,*lb;inti,x;create(la);printf("SETA:n");print_list(la);create(lb);printf("SETB:n");print_list(lb);for(i=0;i<lb->num;i+)x=lb->elementi;if(locate(la,x)=0)insert(la,la->num+1,x);pri
6、ntf("SET(AUB):n");print_list(la);2/*集合运算(A-B)U(B-A)*/#include<stdio.h>typedefstructnodecharinfo;structnode*link;NODE;NODE*initial(),*process();main()NODE*la,*lb,*ptr,*p1,*p2;printf("nEntertheelementsofSetA:");la=initial();printf("SetA:n");travel(la);printf("n
7、EntertheelementsofSetB:");lb=initial();printf("SetB:n");travel(lb);la=process(la,lb);printf("nSet(A-B)U(B-A):n");travel(la);NODE*initial()NODE*head,*p1,*p2;charch;head=(NODE*)malloc(sizeof(NODE);head->link=NULL;p1=head;while(ch=getchar()!='n')p2=(NODE*)malloc(size
8、of(NODE);p2->info=ch;p2->link=NULL;p1->link=p2;p1=p2;return(head);travel(NODE*ptr)ptr=ptr->link;while(ptr!=NULL)printf("%c",ptr->info);ptr=ptr->link;printf("n");NODE*process(NODE*la,NODE*lb)NODE*ptr,*p1,*p2;intfound=0;ptr=lb->link;while(ptr!=NULL)p1=la->li
9、nk;p2=la;while(p1!=NULL&&!found)if(p1->info=ptr->info)found=1;elsep2=p1;p1=p1->link;if(found)p2->link=p1->link;free(p1);found=0;elsep1=(NODE*)malloc(sizeof(NODE);p1->info=ptr->info;p1->link=NULL;p2->link=p1;ptr=ptr->link;return(la);/*集合运算(A-B)U(B-A)*/#include<
10、;stdio.h>typedefstructnodecharinfo;structnode*link;NODE;NODE*initial(),*process();main()NODE*la,*lb,*ptr,*p1,*p2;printf("nEntertheelementsofSetA:");la=initial();printf("SetA:n");travel(la);printf("nEntertheelementsofSetB:");lb=initial();printf("SetB:n");tra
11、vel(lb);la=process(la,lb);printf("nSet(A-B)U(B-A):n");travel(la);NODE*initial()NODE*head,*p1,*p2;charch;head=(NODE*)malloc(sizeof(NODE);head->link=NULL;p1=head;while(ch=getchar()!='n')p2=(NODE*)malloc(sizeof(NODE);p2->info=ch;p2->link=NULL;p1->link=p2;p1=p2;return(head)
12、;travel(NODE*ptr)ptr=ptr->link;while(ptr!=NULL)printf("%c",ptr->info);ptr=ptr->link;printf("n");NODE*process(NODE*la,NODE*lb)NODE*ptr,*p1,*p2;intfound=0;ptr=lb->link;while(ptr!=NULL)p1=la->link;p2=la;while(p1!=NULL&&!found)if(p1->info=ptr->info)found=
13、1;elsep2=p1;p1=p1->link;if(found)p2->link=p1->link;free(p1);found=0;elsep1=(NODE*)malloc(sizeof(NODE);p1->info=ptr->info;p1->link=NULL;p2->link=p1;ptr=ptr->link;return(la);五、实验步骤1 参考实验程序上机调试。2 对调试好的程序分别输入2组不同的数据,观察运行情况。六、思考题1 .顺序表与链接表存储结构有何区别?2 .在实现插入、删除操作有何不同?七、运行结果3 .求集合运算A
14、UBfl223344En terthe nuinberdFlist:?Enterelement 1 :77Entere lenient 2 J:EEpnterclement3 :5SEnterele imeint L 4 J* dz|国tcpelement51Z Jk 31Enterelement161 £金Enterelement L71BET B:g665544bETUi223344Enterthe ntiinbel1oflist tA :77Itthenumberoflist:5EnterelementLI:11Entei*elementt2:22Enterelement3:33Enterelement141:44Enterelement5:55输入第一组数据,分别是11,22,33,44,55,共5个数字输入第二组数据,分别是77,66,55,44,33,22,11,共7个数字运行出的结果为:11,22,33,44,55,77,664 .集合运算(A-B)U(B-A):ntertheelementsofSet;et由:ntei*theelementsofSet百getB:eh”ykantertheelementsa£GetA:输入第一组数据:def
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年榆林市横山区艾好峁卫生院招聘备考题库及答案详解参考
- 2026年正定产业投资控股集团有限公司下属子公司面向社会公开招聘工作人员24人备考题库及一套答案详解
- 公共交通服务质量投诉调查处理制度
- 2026年纳雍县面向社会公开招聘城市社区工作者9人实施备考题库附答案详解
- 2026年河源市暨南大学附属第五医院招聘52人备考题库及答案详解一套
- 2026年杭州文化投资发展有限公司招聘备考题库附答案详解
- 宁夏银行2026年度校园招聘备考题库及完整答案详解1套
- 2026年润曜(北京)国际医药科技有限公司招聘备考题库及一套完整答案详解
- 2026年杭州市政苑小学、秀水小学诚聘数学、英语老师(非事业)备考题库及答案详解参考
- 企业员工培训与素质发展计划目标制度
- 北京通州产业服务有限公司招聘参考题库新版
- 2026年医务科工作计划
- 【数学】2025-2026学年北师大版七年级数学上册 期末提升训练卷
- 2026年枣庄科技职业学院单招综合素质考试模拟试题带答案解析
- 2025高三生物二轮复习进度安排
- 2025年陕西延安市直事业单位选聘工作人员历年高频重点提升(共500题)附带答案详解
- 福建省部分地市2025届高中毕业班第一次质量检测 化学试卷(含答案)
- 夫妻债务约定协议书
- 腕关节综合征
- 上海建桥学院简介招生宣传
- 《智慧教育黑板技术规范》
评论
0/150
提交评论