版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 商业报纸运作模式研究报告
- 基层文化阵地创建路径研究报告
- 上海市长宁区9校2027届数学九年级第一学期期末达标检测模拟试题含解析
- 2027届湖北省武汉市武汉一初慧泉中学数学八上期末统考试题含解析
- 2026年江苏省常熟市高三数学下册期末考试模拟卷【巩固】附答案
- 2026年四川省什邡市高三数学下册期末考试模拟卷(轻巧夺冠)附答案
- 2026年山西省潞城市高三数学下册期末考试模拟卷附参考答案【能力提升】
- 2026年湖南省耒阳市高三数学下册期末考试模拟考试卷及参考答案(黄金题型)
- 郑州市重点中学2027届数学七年级第一学期期末调研试题含解析
- 2025-2026学年大班故事说课稿月亮船
- 安徽省大联考2025-2026学年高一上学期十月调研考试英语试题(解析版)
- T∕ZZB 0446-2018 风力发电用电缆固定头
- 电仪部安全培训内容课件
- 2025年优抚医院招聘面试题集及解析
- 2025至2030年中国陶瓷纤维纸行业市场发展现状及投资方向研究报告
- DB42∕T 1714-2021 湖北省海绵城市规划设计规程
- 履约能力及交货进度保证措施
- 2025年咸阳社区专职工作人员招聘真题
- 《钢结构设计原理》课件 第4章 轴心受力构件
- 广西地区2019-2024年中考满分作文164篇
- 小儿麻醉液体管理指南
评论
0/150
提交评论