资源描述:
《集合运算器报告(共10篇)》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划集合运算器报告(共10篇) 西安邮电大学 课内实验报告 课程名称:数据结构与算法 专业名称:班级:学生姓名:张妍 学号 加深对C语言的理解与掌握,对于给定的题目要求会运用所学基础知识如函数调用、值传递、指针等,设计合理有效的算法来进行处理。进一步提高解决问题的能力二.实验内容 此程序主要实现集合的并、交、差的运算。首先用结构体定义集合元素为char类型,利用指针将输入的元素存到集合A和集合
2、B中,然后在main()函数中使用了mixlist(),megrelist(),difference()构成菜单供用户选择,通过值传递传给各函数,从而A、B集合在各函数中进行运算,并把所得元素放入C集合。三.实验方案设计 1.功能模块图 主菜单 do { printf("1.集合的交运算");目的-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的
3、业务技能及个人素质的培训计划 printf("2.集合的并运算"); printf("3.集合的A对B的差运算");printf("4.集合的B对A的差运算");scanf("%d",&choice);switch(choice){ case1:mixlist(linklist1,linklist2,linklist3);break;case2:megrelist(linklist1,linklist2,linklist3);break;case3:difference(linklist1,li
4、nklist2,linklist3);break;case0:break;} printf("请选择(0-4):"); case4:difference(linklist2,linklist1,linklist3);break; }while(choice!=0); return0; } 1、先写出用户可执行的功能,并用用数字代替功能,用switch()选择结构让用户进行选择,其中,0代表退出系统。 2、选择后,函数会马上执行功能,运行完后按返回键会返回主菜单。目的-通过该培训员工可对保安行业有初步
5、了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 3、用do-while循环,只要用户选择的不是0,循环会一直进行,即一直返回主菜单。 并运算 voidmegrelist(LNODEhead1,LNODEhead2,LNODEhead3){ LNODE*q,*p,*m; for(q=;q;q=q->next){ m=(LNODE*)malloc(siz
6、eof(structLNODE)); m->data=q->data;m->next=;=m; } for(p=;p;p=p->next){} for(q=;q!=NULL&&q->data!=p->data;q=q->next);{} m=(LNODE*)malloc(sizeof(structLNODE));m->data=p->data;m->next=;=m; if(q==NULL) showlist(head3); 1.定义指针q,p,m,分别指向集合A,B,C的头指针的下一个元素。目的
7、-通过该培训员工可对保安行业有初步了解,并感受到安保行业的发展的巨大潜力,可提升其的专业水平,并确保其在这个行业的安全感。为了适应公司新战略的发展,保障停车场安保新项目的正常、顺利开展,特制定安保从业人员的业务技能及个人素质的培训计划 2.用for循环将集合A的元素依次遍历存入集合C中。3.再用双重for循环将集合B中一个元素与集合A中各元素进行比较,若集合A的尾指针为零,则将A中没有这个元素,就将元素存入集合C中;否则证明集合A中有这个元素,就接着比较B中下个元素。4.最后利用showlist()函数将集合C
8、显示出来。时间复杂度为O(n^2); 交运算 voidmixlist(LNODEhead1,LNODEhead2,LNODEhead3){ q=;{ p=; while((p!=NULL)&&(p->data!=q->data)){ m=(LNODE*)malloc(sizeof(structLNODE));p=p->next; if((p!=NULL)&&