- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验7 图的作及应用
仲恺农业工程学院实验报告纸
计算机科学与技术(院、系) 计算机科学与技术 专业092班 组 课
学号 实验日期 教师评定
实验7 图的操作及应用
1.实验目的:
通过求最短路径的算法的实现加深对图的定义、结构特点以及最短路径的概念和意义。
2.实验预备知识:
⑴ 图的定义和基本术语;
⑵ 图的四种存储结构(数组表示法、邻接表、十字链表和邻接多重表);
⑶ 图的两种遍历策略(深度优先搜索和广度优先搜索),并应该注意图的遍历和树的遍历算法之间的区别;
⑷ 图的连通性、连通分量和最小生成树的概念和实现方法;
⑸ 拓扑排序和关键路径、两类求最短路径问题的解法。
迪杰斯特拉算法
#include dos.h
#include conio.h
#include stdio.h
#include stdlib.h
#include string.h
#define INFINITY 30000 //定义一个权值的最大值
#define MAX_VERTEX_NUM 20 //图的最大顶点数
enum BOOL {False,True};
typedef struct
{int arcs[MAX_VERTEX_NUM][MAX_VERTEX_NUM]; //邻接矩阵
int vexnum,arcnum; //图的当前顶点和边数
}Graph;
void CreateGraph(Graph ); //生成图的邻接矩阵
void ShortestPath_DiJ(Graph,int,int[][MAX_VERTEX_NUM],int[]);
//用迪杰斯特拉算法求从某一源点到其余顶点的最短路径
void Print_ShortestPath(Graph,int,int[][MAX_VERTEX_NUM],int[]);
//显示最短路径
void main()
{Graph G; //采用邻接矩阵结构的图
char j=y;
int u;
int P[MAX_VERTEX_NUM][MAX_VERTEX_NUM]; //存放从源点到各顶点的最短路径
int D[MAX_VERTEX_NUM]; //存放从源点到各顶点的最短路径的距离
//------------------程序解说----------------------------
printf(本程序将演示利用迪杰斯特拉算法求\n从图的一点到其余顶点的最短路径.\n);
printf(首先输入图的顶点数和弧数.\n格式:顶点数,弧数;例如:5,7\n);
printf(然后输入各弧和权值.\n格式:弧尾,弧头,权值;例如:\n1,2,10\n1,3,18\n2,4,5\n3,2,5\n4,3,2\n4,5,2\n5,3,2\n);
printf(再输入从哪个顶点出发,例如:1\n);
printf(程序将会找出从到其余顶点的最短路径.\n);
printf(10 1-2\n17 1-2-4-3\n15 1-2-4\n17 1-2-4-5\n);
//------------------------------------------------------
while(j!=Nj!=n)
{CreateGraph(G); //生成邻接矩阵结构的图
printf(从哪个顶点出发:);
scanf(%d,u); //输入迪杰斯特拉算法中的起始顶点
ShortestPath_DiJ(G,u,P,D); //利用迪杰斯特拉算法求最短路径
Print_ShortestPath(G,u,P,D); //显示最短路径
printf(最短路径演示完毕,继续进行吗?(Y/N));
scanf( %c,j);
}
}
void CreateGraph(Graph G)
{//构造邻接矩阵结构的图G
int i,j;
int start,end,weight;
printf(请输入图的顶点数和弧数(顶点数,弧数):);
scanf(%d,%d,G.vexnum,G.arcnum); //输入图的顶点数和边数
for(i=1;i=G.vexnum;i++)
for(j=1;j=G.vexnum;j++)
G.arcs[i][j]=INFINITY; //初始化
您可能关注的文档
最近下载
- 12D10 防雷与接地工程图集-watermark.pdf VIP
- 泛海三江JB-QGL-9000、JB-QTL-9000、JB-QBL-9000火灾报警控制器.docx VIP
- 企业营运能力分析--以安琪酵母股份有限公司为例.DOC VIP
- 48.移交清单(设备移交、系统移交、文档移交).docx VIP
- 11 营销渠道评价管理.ppt VIP
- 雅思六级真题及答案2025.doc VIP
- 《剪映自媒体创作》课件——第四章 音乐与音效.pptx VIP
- 中国过敏性皮炎诊疗指南(2023版).docx VIP
- 《剪映自媒体创作》课件——第三章 添加和使用文字.pptx VIP
- 安琪酵母营运能力分析.docx VIP
文档评论(0)