山东大学数据结构课程设计报告精要.docVIP

山东大学数据结构课程设计报告精要.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据结构课程设计报告 ---构件标识系统 学院:软件学院 专业:软件工程 年级 *** 姓名:*** 学号:*** 一、系统开发平台 1.1题目: 构件标识 1.2开发工具:VC++6.0 1.3语言:C++ 1.3操作系统:Windows XP 或 Windows7系统 二、系统规划 2.1任务陈述:图是由非连通图和连通图构成的,非连通图又由几个独立的子连通图构成,每个子连通图称为一个构件,本系统需要将非连通图的子连通图进行标记构件,并图形化演示构件标识的过程。 2.2任务目标: (1)根据所输入数据构造图,形成直观的图形; (2)运用BFS算法将所输入数据构成的图进行标识,演示标识过程,并将不同构件的顶点标识成不同的颜色; (3)输入错误弹出对话框提示; (4)使用多组测试数据证明结果正确。 三、系统定义 3.1系统边界: 3.2系统描述: 本系统是一个实现实际应用性很强的功能的系统。实际生活中,有很多方面需要对一个大的系统按照其相互关联的关系进行小的分类,这需要建立一个模型,本系统抽象其为无向图的模型,实现对子连通图的标识。其中通过输入图中顶点数和边数以及开始遍历的顶点进行图的构造,图形显示无向图,并显示图的构件的个数及各不同构件的元素组成。 四、需求分析 4.1 数据结构需求: 输入为图中各顶点和各边(不用逗号和空格隔开,直接连接输入为一行即可),还需要输入开始进行遍历的顶点;输出为输入数据所构成的无向图(即是根据BFS算法所输出的不同颜色标识的构件图)和构件的个数以及各构件的元素组成。 4.2 操作需求:首先输入顶点数,边数和各个顶点各个边以及开始遍历的顶点,输入完成后点击BFS按钮将所输入的数据生成构件图在下边的图形界面显示,可以点击上一步或下一步按钮浏览生成过程。 4.3 系统需求说明: (1)可供11个顶点以及最多55条边存储的空间; (2)以秒为单位的响应速度; (3)能对数据输入的各种不同序列做出相应的响应。 五、数据结构设计 5.1 逻辑结构: 非线性结构,无向图由顶点和边构成,分为连通图和非连通图,非连通图又由几个小的子连通图构成,进行构件时,分别对图中的子连通图进行标识。 5.2 存储结构: 采用邻接多重链表结构存储数据,如下图所示: 六、算法设计 6.1抽象数据类型 ADT AMLGraph(无向图) { 数据对象: 具有相同特征的无向图中的顶点集和边; typedef struct EBox{ VisitIf mark; (访问标记) int ivex,jvex; (该边依附的两个顶点的位置 ) struct EBox *ilink,*jlink; (分别指向依附这两个顶点的下一条边 ) }EBox; typedef struct{ VertexType data; EBox *firstedge; ( 指向第一条依附该顶点的边 ) }VexBox; typedef struct{ VexBox adjmulist[MAX_VERTEX_NUM];(存储顶点及其指针的数组) int vexnum,edgenum; ( 无向图的当前顶点数和边数) }AMLGraph; 基本操作: CreatGragh( CString X, CString Y) 操作结果:构造无向图; int LocateVex(AMLGraph G,VertexType u) 操作结果:寻找顶点在图中的位置; VertexType GetVex(AMLGraph G,int v) 操作结果:返回v的顶点值 int FirstAdjVex(AMLGraph G,VertexType v) 操作结果:寻找v的第一个邻接顶点; int NextAdjVex(AMLGraph G,VertexType v,VertexType w) 操作结果:返回v的(相对于w的)下一个邻接顶点; int MarkUnvisited(AMLGraph G) 操作结果:标记边为unvisited; int DeleteVex(AMLGraph G,VertexType v) 操作结果:删除G中顶点v及其相关的边; void DestroyGraph(AMLGraph G) 操作结果:销毁一个图; }ADT抽象数据类型名称 八、测试和运行 输入顶点数据abcdeae,弹出窗口如下: 输入边为abba,弹出窗口如下: 3.不输入数据, 弹出提示对话框如下: 输入俩个遍历顶点是,弹出窗口如下: 输入顶点:abcde 边为:aa ;开始遍历顶点:a 如

文档评论(0)

宝贝计划 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档