最短路径算法实现
来源:互联网 发布:asp档案管理系统源码 编辑:程序博客网 时间:2024/05/01 04:03
// ShorttestPath.cpp : Defines the entry point for the console application.
//
#include "stdafx.h"
#include "stdio.h"
#include "conio.h"
#define INFINITY 32767
//入口参数:Graph是图的矩阵表示;
//row 是矩阵的行数;
//v0是起点的序号;
//final[i]记录从起点到第i个节点是否有路可达;
void ShortestPath_DIJ(int G[6][6],int P[6][6],int D[6],int row,int v0,bool final[])
{
for(int v = 0;v<row;++v)
{
final[v] = false;
D[v] = G[v0][v];
for(int w = 0;w<row;++w)P[v][w] = false;//设空路径;
if(D[v]<INFINITY)
{
P[v][v0] = true;
P[v][v] = true;//自己是可以到达的;
}
}
D[v0] = 0;final[v0] = true;//初始化,v0的顶点属于集合s;
//final作为标志,final[v]为false说明v在v中,否则在s中;
//开始主循环,每次求得v0到某个v顶点的最短路径,并加v到s集;
for(int i = 0;i<row;++i)
{
int min = INFINITY;
for(int w = 0;w<row;++w)
if(!final[w])//w在v-s中;
if(D[w]<min)
{
v = w;
min = D[w];//w顶点离v0更近;
}//查找当前行中权值最小的节点;
final[v] = true;//将其加入s
for(w = 0;w<row;++w)//更新当前最短路径及距离;
{
if(final[w] && (min+G[v][w]<D[w]))//修改D[w]和P[w],w属于v-s
{//如果在s中已有的路径比经过v后在到达还要远,就选择通过v点;
D[w] = min + G[v][w];
P[i][w] = w; //P数组记录的是要到达i节点需要经过的节点;
P[w][w] = true;
}
}
}
for(i =0;i<row;i++)
for(int j = 0;j<row;j++)
{
printf("/tv%d:%d",i,P[i][j]);
}
}
int main(int argc, char* argv[])
{
int G[6][6] = {
INFINITY,INFINITY,10 ,INFINITY,30 ,100 ,
INFINITY,INFINITY,5 ,INFINITY,INFINITY,INFINITY,
INFINITY,INFINITY,INFINITY,50 ,INFINITY,INFINITY,
INFINITY,INFINITY,INFINITY,INFINITY,INFINITY,10 ,
INFINITY,INFINITY,INFINITY,20 ,INFINITY,60 ,
INFINITY,INFINITY,INFINITY,INFINITY,INFINITY,INFINITY
};
int D[6] ={
INFINITY,INFINITY,INFINITY,INFINITY,INFINITY,INFINITY
};
int P[6][6];
bool final[6];
ShortestPath_DIJ(G,P,D,6,1,final);
return 0;
}
- 最短路径算法实现
- 最短路径算法实现
- floyd最短路径算法的实现
- Dijkstra 最短路径算法C#实现
- 最短路径实现(Dijkstra算法)
- A*算法的最短路径实现!
- Dijkstra算法的最短路径实现
- dijkstra最短路径算法C实现
- Java实现"最短路径FLOYD算法”
- 最短路径Dijkstra算法实现
- 最短路径算法(java实现)
- 图论--Matlab实现最短路径算法
- dijkstra最短路径算法的实现
- 算法实现-->最短路径Dijksra
- 最短路径迪杰斯特拉算法实现
- SparkGraphX加权最短路径算法实现
- SparkGraphX加权最短路径算法实现
- 无权最短路径算法java实现
- c# 常用文件操作
- 美女间谍
- 软件架构的精髓:协作(Booch语)
- 看古人如何养颜:散落在历史中的美容秘方
- 参加软件水平考试
- 最短路径算法实现
- 多功能计算器
- 鹅岭公园
- 莫拉蒂出任主席 接替法切蒂重新出山
- Good Free pdf Tool
- RSA算法实现中的大数运算,看别人写的
- 亲密接触VC6.0编译器
- 字符集之间转换(UTF-8,UNICODE,Gb2312)
- dhAjaxTreeView2.0发布