数据结构求交集课程设计心得体会.docx
《数据结构求交集课程设计心得体会.docx》由会员分享,可在线阅读,更多相关《数据结构求交集课程设计心得体会.docx(6页珍藏版)》请在冰豆网上搜索。
数据结构求交集课程设计心得体会
竭诚为您提供优质文档/双击可除
数据结构求交集课程设计心得体会
篇一:
数据结构试验求交集
#include
#include
#defineLensizeof(structjiaoji)
structjiaoji{
intdata;
structjiaoji*next;
};
structjiaoji*creat()
{
structjiaoji*p,*p1,*head;
intlength=0;
head=nuLL;
p=p1=(structjiaoji*)malloc(Len);
printf("请输入int型元素(以1007结束!
):
");while(p->data)
{
scanf("%d",
if(p->data==1007)break;
length++;
if(length==1)head=p;
elsep1->next=p;
p1=p;
p=(structjiaoji*)malloc(Len);}
p1->next=nuLL;
returnhead;
}
structjiaoji*palac(structjiaoji*p){
structjiaoji*p2,*p1;
inttemp;
p1=p;
while(p)
{
p2=p->next;
while(p2)
{
if(!
p2)break;
if(p2->data data)
{
temp=p2->data;
p2->data=p->data;
p->data=temp;
}
p2=p2->next;
}
p=p->next;
}
returnp1;
}
voidprint(structjiaoji*p)
{
while(p)
{
printf("->%d",p->data);
p=p->next;
}
}
structjiaoji*add(structjiaoji*head1,structjiaoji*head2)
{
structjiaoji*p1,*p2,*p3,*p4,*head3;intL=0;
p1=head1;
p2=head2;
p3=p4=head3=nuLL;
/*while(p1!
=nuLL)
{
while(p2!
=nuLL)
{
if(p1->data==p2->data)
{
L++;
if(L==1)
{
p3=(structjiaoji*)malloc(Len);
p3->data=p1->data;head3=p3;}else{p4=(structjiaoji*)malloc(Len);p4->data=p1->data;p3->next=p4;p3(:
数据结构求交集课程设计心得体会)=p4;}break;}p2=p2->next;}p2=head2;p1=p1->next;}if(p3!
=nuLL)p3->next=nuLL;*/while(p1!
=nuLL
2、题目与流程图或模块图;
3、程序清单和运行结果;
4、小结(收获和体会);
5、装订成册.
二、课程设计题目和流程图
1、题目:
求集合的运算问题
要求:
1)集合的元素限定为小写字母
2)实现集合的交集、并集和差运算
2、数据定义
1)、有序表的抽象数据类型定义为:
readdata(linklisthead)
初始条件:
head是以head为头节点的空链表。
操作结果:
生成以head为头节点的非空链表。
pop(linklisthead)
初始条件:
head是以head为头节点的非空链表。
操作结果:
将以head为头节点的链表中数据逐个输出。
2)、集合的抽象数据类型定义为:
and(linklisthead1,linklisthead2,linklisthead3)
初始条件:
链表head1、head2、head3已存在
操作结果:
生成一个由head1和head2的并集构成的集合head3。
or(linklisthead1,linklisthead2,linklisthead3)
初始条件:
链表head1、head2、head3已存在
操作结果:
生成一个由head1和head2的交集构成的集合head3。
differ(linklisthead1,linklisthead2,linklisthead3)
初始条件:
链表head1、head2、head3已存在
操作结果:
生成一个由head1和head2的差集构成的集合head3。
3、模块图模块结构
系统主要由8个模块组成,分别是:
1、单链表的建立
2、单链表输出
3、集合交集
4、集合并集
5、集合差集
6、主函数
模块之间的结构如下:
三、程序清单和运行结果
1、程序清单
#include
#include
typedefstructnode
{
chardata;structnode*next;
}*linklist;
voidreaddata(linklisthead){
}
linklistp;chara;scanf("%c",while(a!
=\n){}p=(linklist)malloc(sizeof(structnode));p->data=a;p->next=head->next;head->next=p;scanf("%c",
篇三:
集合的运算+课程设计报告
20XX-20XX学年第二学期
《高级语言程序设计》
课程设计报告
题目:
专业:
班级:
姓名:
指导教师:
成绩:
集合的运算网络工程15
(1)邱敏代美丽
计算机学院20XX年4月22日
目录
一、需求分析.......................................................II1、程序的实现.......................................................1
(1)功能...........................................................1
(2)实施...........................................................12、设计的要求.......................................................1二、概要设计........................................................11、问题分析.........................................................12、模块结构.........................................................2
(1)结构分析.......................................................2
(2)结构分析图.....................................................2三、详细设计........................................................31、解题思路.........................................................3
(1)数据结构设计...................................................3
(2)逻辑结构存储结构...............................................32、算法设计.........................................................3四、调试分析和测试结果..............................................41、模块分析.........................................................4
(1)定义单链表结点类型.............................................4
(2)运用尾插法建立单链表...........................................4(3)建立有序链表...................................................52、结果分析.........................................................5五、总结............................................................61、解决的问题.......................................................6
(1)集合的运算算法.................................................6
(2)解决方式.......................................................72、心得体会.........................................................7六、参考文献(资料不得少于5篇)....................................7
七、致谢............................................................7八、附录(含程序源码)..............................................8
一、需求分析1、程序的实现
(1)功能
使用链表来表示集合,完成集合的合并,求交集等操作。
(2)实施
1)初步完成总体设计,搭好框架,确定函数个数;2)完成最低要求;3)继续完成进一步要求。
2、设计的要求
(1)界面友好,函数功能要划分好;
(2)总体设计应画流程图;(3)程序要加必要的注释;(4)要提供程序测试方案;
(5)程序要经得起测试,宁可功能少一些,也要能运行起来,不能运
行的程序是没有价值的。
二、概要设计
1、问题分析
该问题主要实现以下功能:
(1)利用尾插法建立单链表;
(2)对于输入的链表进行有序排列(3)删除有序链表中不符合要求的元素(4)调用函数对单链表进行交、并运算并输出
2、模块结构
(1)结构分析
程序以用户和计算机的对话方式执行,即在计算及终端显示提示信息之后,由用户在键盘输入演示程序中规定的运算命令;相应的输入数据(过滤输入中的非法字符)和运算结果闲时间在其后。
系统由以下几个模块组成,分别是:
1)单链表的建立2)单链表的有序排列
3)删除单链表中不符合条件的元素4)集合交集5)集合并集6)单链表输出7)主函数
(2)结构分析图