- 1、本文档共12页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构图的遍历课程设计
课程名称:C语言
湖南涉外经济学院
学生课程设计(论文)
题 目 图的遍历
姓 名
学 号
学 院 信息科学与工程学院
专业、年级 软件工程1101
指 导 教 师 刘 琼
年 月 日
摘 要目 录
摘 要 2
目 录 1
第一章 绪 论 2
1.1课题背景及其现实意义 2
1.1.1 课题背景 2
1.1.2 课题意义 2
1.2 需求分析 2
1.3 设计目的 3
1.4 设计内容 3
第二章 系统功能分析 4
2.1 功能模块的实现 4
2.1.1 创建图模块 4
2.1.2 图以邻接矩阵的方式输出图 5
2.1.3 图的深度优先遍历 5
2.1.4 图的广度优先遍历 7
2.1.5 主函数 8
第三章 系统测试 9
3.1程序流程图 9
第四章 总结与展望 10
参考文献 11
第一章 绪 论
1.1课题背景及其现实意义
1.1.1 课题背景
随着近些年来的发展计算机在我们日常说中非常重要、并且计算机带动这更大的人工智能的发展为我们人类的生活提供方便,然而电子设备的操作成为我们克服的一个问题,随之我国因人员数量不断增长和日益庞大的规模,所产生的数据量越来越大,对数据的管理带来的极大的挑战。
与此同时,无纸化办公的蓬勃发展和日趋成熟的计算机技术,使得现实问题计算机化,以其高效率、低成本的优势,日渐成为新兴模式和理念。
数据结构中图的遍历是一种算法,图在数据结构中应用十分广泛,对于图来说最重要的当然是算法,而且相当的一部分都是很专业的,一般的人几乎不会接触到,图的遍历算法是求解图的连通性问题、拓扑排序和求关键路径等算法的基础。 本次课程设计通过用例图以及功能模块划分的方法描述。其次,在需求分析的基础上,对系统进行了总体设计及详细设计,使用C语言实现了并给出了效果图。最后对系统进行了测试并给出了测试结果。
1.1.2 课题意义
图的遍历算法是求解图的连通性问题、拓扑排序和求关键路径等算法的基础。掌握有向图和无向图的概念掌握邻接矩阵和邻接链表建立图的存储结构掌握DFS及BFS对图的遍历操作了解图结构在人工智能、工程等领域的广泛应用。
1.2 需求分析
用户可以根据自己的需求分别输入任意的一个有向图可以是非连通图也可以是连通图;
通过用广度优先遍历和深度优先遍历已有的图并输出;
并且以邻接矩阵的形式输出该已有的图;
广度优先遍历图;
深度优先遍历图
1.3 设计目的
在大学期间数据结构是一个较为重要的饿课程,本课程设计为学生提供了一个既动手又动脑,自学,查资料,独立实践的机会。将本学期课本上的理论知识和实际有机的结合起来,锻炼学生实际分析问题和解决问题的能力,提高学生适应实际、实践编程的能力,使对。、、、、
系统功能分析
2.1 功能模块的实现
下面将依次介绍mian 函数模块、创建图模块、以邻接矩阵的方式输出图、深度优先遍历图 、广度优先遍历图模块的现实。
2.1.1 创建图模块
本次图的储存结构选用的是邻接矩阵的方式储存各个顶点及其边之间的关系(用1表示有关,0表示无关),用两个数组分别储存顶点和数据之间的关系(边或弧)的信息,借助于邻接矩阵容易判定任意两个顶点之间是否有边或者弧,容易求得各个顶点的度。
void CreateMGraph(MGraph *L)
{
int i,j;
printf(请输入顶点数目:\n);
scanf(%d,L-num);
printf(请输入各顶点:\n);
for(i=0;iL-num;i++)
{
fflush(stdin);
scanf(%c,L-vexs[i]);
}
printf(请输入各顶点边的关系(1是有关0是无关):\n);
for(i=0;iL-num;i++)
{
for(j=0;jL-num;j++)
{
scanf(%d,L-arcs[i][j]);
}
}
}
2.1.2 图以邻接矩阵的方式输出图
将图以邻接矩阵的方式输出图即就是讲数组中的数据用两个循环语句将其元素依次输出,这样就简单的表示了图上各个顶点之间的关系。
void OutMGraph(MGraph L)
{
int i,j;
printf(\n图的顶点数目v为:%d,L.num);
printf(\n图的各顶点的信息为:\n);
for(i=0;
文档评论(0)