数据结构课程设计报告-集合运算

数据结构课程设计报告-集合运算

ID:6809988

大小:352.50 KB

页数:20页

时间:2018-01-26

数据结构课程设计报告-集合运算_第1页
数据结构课程设计报告-集合运算_第2页
数据结构课程设计报告-集合运算_第3页
数据结构课程设计报告-集合运算_第4页
数据结构课程设计报告-集合运算_第5页
资源描述:

《数据结构课程设计报告-集合运算》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、数据结构课程设计报告设计题目:集合运算专业班级学生学号指导教师2011年5月19目录一.设计题目2(一).题目:集合运算2(二).问题描述和分析2二.设计内容3(一).数据结构设计3(二).算法设计3三.概要设计4(一).程序结构图4(二).具体程序设计4四.算法分析5源代码5五.结果分析16六.心得体会21七.参考文献2219一.设计题目(一).题目:集合运算功能:使用链表来表示集合,完成集合的合并,求交集等操作。主要包含以下内容:1.初步完成总体设计,搭好框架,确定人机对话的界面,确定函数个数

2、;2.完成最低要求;3.进一步要求:要求:1)界面友好,函数功能要划分好2)总体设计应画一流程图3)程序要加必要的注释4)要提供程序测试方案5)程序一定要经得起测试,宁可功能少一些,也要能运行起来,不能运行的程序是没有价值的。(二).问题描述和分析本课程设计中,链表长度不能超过100,集合输入的形式为一个以“回车符”为结束标志的字符串,串中字符顺序不限,且允许出现重复字符或非法字符,程序应能自动滤。输出的运算结果字符串中将不含重复字符或非法字符。问题描述:有两个集合A、B,要求它的交集、并集。用两

3、个链表L1、L2存储集合A、B。描述该问题的存储结构,算法,并通过编写程序来实现。问题分析:1.定义一个链表来存储集合元素;2.链表L包括数据域和指针域,数据域中存储集合元素,指针域中存储下一个集合元素的位置;3.创建若干个基本函数,通过函数调用对链表进行作,实现集合的交、并运算。19二.设计内容(一).数据结构设计1.数据结构设计考虑创建三个带头结点的单链表,用来存储两个集合中的元素和最终的结果,为实现集合的交,并运算功能,应以有序链表表示集合。为此,需要两个抽象数据类型:有序表和集合。2.逻辑

4、结构存储结构逻辑结构:创造一个带结点的单链表包括(头结点L,结点若干,尾结点)单链表中每个结点包括(*next表示指针data表示域)(二).算法设计程序以用户和计算机的对话方式执行,即在计算机终端上显示“提示信息”之后,由用户在键盘上输入演示程序中规定的运算命令;相应的输入数据(滤输入中的非法字符)和运算结果显示在其后。程序执行的命令包括:a)构造集合A;b)构造集合B;c)求交集;d)求并集;e)结束。“构造集合A”和“构造集合B”时,需以字符串的形式键入集合元素。19三.概要设计(一).程序

5、结构图Main函数InterSect交函数Union并函数Sort链表排序函数CreateList尾插法建表DispList输出函数(二).具体程序设计1.定义链表typedefintElemType;typedefstructLnode2.返回链表长度3.返回指定节点的值4.定位制定值的节点的值5.显示链表voiddisplay(structLnode**L)6.创建链表,并设置链表为空voidcreat(structLnode**L)7.向链表中插入元素voidinsert(structLno

6、de**L,intn,ElemTypex)8.插在第n个节点的前面9.删除指定位置的节点10.初始化链表voidinit(structLnode**L,intlen)11.复制链表L1到L2voidcopy(structLnode**L1,structLnode**L2)12.求交集voidintersection(structLnode**L1,structLnode**L2,structLnode**L3)13.求并集unionset(structLnode**L1,structLnode**

7、L2,structLnode**L3)14.把L1复制到L3,然后比较L2和L3,得到L2与L3中没有的元素,并插入15.插在排序的位置上insert(&*L3,k,t2->data);16.插在链尾19四.算法分析源代码如下:#include#include#include#definenull0#defineM100typedefintElemType;/*定义链表*/typedefstructLnode{   ElemTypedata;

8、   structLnode*next;};intlenth(structLnode**L){   intn=0;   structLnode*t;   t=*L;   while(t!=null)       {          n++;          t=t->next;       }   returnn;}ElemTypeget(structLnode**L,intn){     inti=1;     structLnode*t;     t=*L; while(i

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。