图的邻接矩阵存储结构建立

图的邻接矩阵存储结构建立

ID:37729626

大小:141.50 KB

页数:12页

时间:2019-05-29

图的邻接矩阵存储结构建立_第1页
图的邻接矩阵存储结构建立_第2页
图的邻接矩阵存储结构建立_第3页
图的邻接矩阵存储结构建立_第4页
图的邻接矩阵存储结构建立_第5页
资源描述:

《图的邻接矩阵存储结构建立》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、课程名称:《数据结构》课程设计课程设计题目:图的邻接矩阵存储结构建立姓名:XXX院系:计算机学院专业:计算机科学技术年级:11级学号:XXXXXXXX指导教师:XXX2013年9月28日12目录1课程设计的目的………………………………………………………32需求分析………………………………………………………………33课程设计报告内容…………………………………………………33.1概要设计………………………………………………………33.2详细设计………………………………………………………43.3调试分析………………………………………………………53.4

2、用户手册………………………………………………………53.5程序清单………………………………………………………53.6测试结果………………………………………………………104小结…………………………………………………………………125参考文献……………………………………………………………12121.课程设计的目的(1)熟练使用C语言编写程序,解决实际问题;(2)了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;(3)初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;(4)提高综合运用所学的理论知识和方法独立分

3、析和解决问题的能力;2.需求分析 问题描述:建立图的邻接矩阵存储结构(图的类型可以是有向图或有向网、无向图或无向网,学生可以任选一种类型),能够输入图的顶点和边的信息,并存储到相应存储结构中,而后给出图的DFS,BFS次序。要求:①先任意创建一个图;②图的DFS,BFS的递归和非递归算法的实现。3.课程设计报告内容3.1概要设计1.函数①主函数:main()②创建无向图:CreateGraph()12③深度优先遍历图:DFS()④广度优先遍历图:BFS()3.2详细设计1.使用邻接矩阵作为图的存储结构,程序中主要用到的抽象数据类型:typedef

4、struct{charvexs[MAX];//顶点向量intarcs[MAX][MAX];//邻接矩阵intvexnum,arcnum;//图的当前顶点数和弧数}Graph;2.程序流程图:主函数main()创建无向图数据输入功能选择深度优先遍历退出程序广度优先遍历数据输出程序结束数据输出123.3调试分析程序的设计严格遵循结构化的程序设计思想,由简单到复杂,注意规范。在此次程序运行中,出现了很多的错误,开始的时候,不能很好的创建一个图,后来改进了算法,使得程序能够正确的运行。3.4用户手册①进入程序后,您会看到以下提示:“无向图的创建及DFS和

5、BFS的递归和非递归实现!”1.“创建无向图!”;2.“图的深度优先遍历!”;3.“图的广度优先遍历!”;4.“退出!”;请选择相应的数字键实现相应的功能。②在执行图的遍历前必须先创建图,创建图时,按照系统的提示进行操作即可。3.5程序清单#include#include#defineMAX20intvisited[MAX];//访问标志数组typedefstruct{charvexs[MAX];//顶点向量intarcs[MAX][MAX];//邻接矩阵intvexnum,arcnum;//图的当前顶点数和

6、边数}Graph;typedefstructQnode{12intdata;structQnode*next;}Qnode,*Queueptr;typedefstruct{Queueptrfront;Queueptrrear;}Linkqueue;voidInitQueue(Linkqueue&Q){Q.front=Q.rear=(Queueptr)malloc(sizeof(Qnode));if(Q.front)Q.front->next=NULL;}voidEnQueue(Linkqueue&Q,inte){Queueptrp;p=(Queu

7、eptr)malloc(sizeof(Qnode));if(p){p->data=e;p->next=NULL;Q.rear->next=p;Q.rear=p;}}intDeQueue(Linkqueue&Q){inte;Queueptrp;if(Q.rear!=Q.front){p=Q.front->next;e=p->data;Q.front->next=p->next;if(Q.rear==p)Q.rear=Q.front;free(p);}if(Q.front==p)Q.rear=Q.front;returne;}12intLocatev

8、ex(GraphG,charv)//返回元素v的位置{inti;for(i=0;i

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

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

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