dijkstra算法求最短路径
来源:互联网 发布:淘宝托管协议 编辑:程序博客网 时间:2024/05/17 05:58
define MAXINT 0xff
define MAXSIZE 1000
include
include
using namespace std;
int amapBorder[MAXSIZE][MAXSIZE];
int vNum = 6;
void initmap()
{
for(int i = 1 ; i < vNum + 1 ; i++)
{
for(int j = 1 ; j < vNum + 1 ; j++)
{
amapBorder[i][j] = MAXINT;
}
}
amapBorder[1][2] = 6;amapBorder[1][3] = 3;amapBorder[2][3] = 2;amapBorder[2][4] = 5;amapBorder[3][4] = 3;amapBorder[3][5] = 4;amapBorder[4][5] = 2;amapBorder[4][6] = 3;amapBorder[5][6] = 5;for(int i = 1 ; i < vNum + 1 ; i++){ for(int j = 1 ; j < vNum + 1 ; j++) { if(i == j) { amapBorder[i][j] = 0; } if(amapBorder[i][j] == MAXINT) { amapBorder[i][j] = amapBorder[j][i]; } }}
}
void dijstra(int vo)
{
int U[7] = {0} , dist[7] = {0};
int path[7];
for(int i = 1 ; i < vNum + 1 ; i++)
{
dist[i] = amapBorder[vo][i];
if(dist[i] == MAXINT)
{
path[i] = -1;
}
else
{
path[i] = vo;
}
}
for(int i = 1 ; i < vNum + 1 ; i ++){ int minNum = MAXINT; int temp = vo; for( int j = 1 ; j < vNum + 1 ; j++) { if((!U[j]) && dist[j] < minNum ) { minNum = dist[j]; temp = j; } } U[temp] = 1; for(int j = 1; j < vNum + 1 ; j++) { if(!U[j] && amapBorder[temp][j] < MAXINT) { if(dist[j] > amapBorder[temp][j] + dist[temp]) { dist[j] = amapBorder[temp][j] + dist[temp]; path[j] = temp; } } }}for(int i = 1; i < vNum + 1 ; i++){ cout << i << ": " << dist[i] << " "; int j = i; cout << j << "<-"; while(path[j] != vo) { j = path[j]; cout << j << "<-"; } cout << vo << endl;}
}
阅读全文
0 0
- dijkstra 求最短路径算法
- Dijkstra算法求最短路径
- Dijkstra 算法求最短路径
- Dijkstra算法求最短路径
- Dijkstra算法求最短路径
- Dijkstra 求最短路径算法
- Dijkstra算法 ---求最短路径
- Dijkstra算法求最短路径
- dijkstra算法求最短路径
- dijkstra算法求最短路径
- Dijkstra算法求最短路径
- dijkstra算法求最短路径
- 【算法】Dijkstra 求最短路径算法
- Dijkstra算法求最短路径(java)
- 求最短路径之Dijkstra算法
- 求最短路径Dijkstra算法C++
- _DataStructure_C_Impl:Dijkstra算法求最短路径
- Dijkstra算法求最短路径(java)
- SVN中小图标含义
- 如何做好软件安全测试
- python 聚类分析实战案例:K-means算法(原理源码)
- idea代码自动补全快捷键设置
- 统计某个进程的cpu使用率使用top命令
- dijkstra算法求最短路径
- 一个简单的网页性能收集平台
- 《计算机操作系统》总结三(处理机调度与死锁)
- 访问阿里云服务器上的neo4j
- 查看linux中的TCP连接数
- win10 cortana 没反应解决方法
- 为什么masonry的block里引用self不需要weak?
- Google 的Protobuf 技术详解
- LCT(Link Cut Tree)动态树学习笔记