资源简介
数据结构与算法中图求最短路径,迪杰斯特拉算法的实现,带详细注释,可完整实现。
代码片段和文件信息
#include “stdio.h“
#define MAXSIZE 20
#define INFINITY 9999
typedef struct {
char vexs[MAXSIZE];//vertices infoemation
int arcs[MAXSIZE][MAXSIZE];
int arcNum vexNum;
}MGraph;
void dijkstra(MGraph G int v) {
int dist[MAXSIZE]; //dist[i]:源点到点 i 的路径长度
int path[MAXSIZE][MAXSIZE]; //path[i][]:源点到点 i 经过的顶点j下标集合
int i j k m min n flag;
for(i=0; i for(j=0; j path[i][j] = -1;
}
}
for(i=0; i dist[i]=G.arcs[v][i]; //dist[]初始状态为arcs[][]第v行
if(dist[i]!=0 && dist[i]!=INFINITY) {//与源点 v 有关系的顶点第一个经过的点为 v
path[i][0]=v;
}
}
n=0; //打印最短路径时对应第%d条
flag=1; //循环结束标志
//从小到大找最短路径
while(flag) {
k=0; //每一轮循环中要选择的最短路径长度对应的顶点下标
min=INFINITY; //每一轮循环中要选择的最短路径长度
for(j=0; j if(dist[j]!=0 && dist[j] k=j;
min=dist[j];
}
}
printf(“第%d条最短路径长度为%d--(“ ++n min); //显示最短路径
for(j=0; j if(path[k][j]!=-1) { //打印从源点到最短路径顶点经过的顶点
printf(“%d“ path[k][j]);
}
}
printf(“%d)\n“ k);
for(j=0; j if(j!=k && G.arcs[k][j]!=INFINITY) {
if(dist[k]+G.arcs[k][j] dist[j]=dist[k]+G.arcs[k][j];
for(m=0; m
- 上一篇:MFC_Clock.zip
- 下一篇:C语言 个人通讯录管理系统
相关资源
- 西南交通大学计算机图形学实验三,
- 图片版QT黑白棋
- mfc绘制数学函数图像
- 北京地铁最短路径.rar
- 图像处理-读取bmp图像均值滤波-C++
- mfc生成excel-pdf图表
- OpenCV 装入一幅彩色图像然后在源图像
- 图的建立与遍历c++实现邻接矩阵存储
- 基于51单片机控制的篮球比赛计时、计
- VC6.0调用大漠函数(实现找图按键_制
- VC++解析并显示JPEG图片showjpeg.rar
- Kinectv2_深度图和骨骼图源码
- 简易绘图软件,实现橡皮经绘图,放
- 全景图像拼接程序源代码VC++
- 图像内容识别缩放 源代码 C++
- 地球仪纹理型纹理贴图 C++代码
- 猜数字游戏 c语言实现 猜4位随机生成
- c++读写BMP JPG 和png 的图像文件linux
- 图书管理系统 C语言设计源代码和实验
- 图书馆管理系统分为借书、还书、图
- mfc画一个五角星的可以运行
- 类似画图板的程序-VC源码
- GPS车辆监控系统源代码
- vc++ 画图形,选中图形可以移动图形
- c语言 bmp图片显示
- 数据结构栈、队列、二叉树、顺序查
- 基于改进的种子区域生长法的图像分
- VC++视频帧提取软件
- PCL点云-RGBD图像ICP迭代最近点之点云配
- 图像处理 逆滤波处理 C/C++语言实现
评论
共有 条评论