资源简介
Dijkstra计算地铁最短路径,以天津地铁为例
代码片段和文件信息
#include “iostream“
#include “string“
using namespace std;
#define MaxInt 100000
int stanum;//所经站点数
static bool IsT(string *name string nam int n)//检查是不是节点
{
int i = 0;
while (i < n) {
if (name[i] == nam) {
return true;
}
i ++;
}
return false;
}
int Check(string *name string nam int n)
{
int i = 0;
while (i < n && name[i] != nam) {
i ++;
}
return i;
}
/*void Creat_path(float *Map string *name int n)
{
cout << “请输入要添加路径的两个结点的名称:“;
string name1 name2;
cin >> name1 >> name2;
if (name1 != “?“ && name2 != “?“) {
int i j;
i = Check(name “a“ n);
j = Check(name “e“ n);
Map[n * i + j] = path;
Creat_path(Map name n);
}*/
void print(int *pa string *nam int v int i)//V表示是目地结点
{
if (pa[i] >= 0) {
print(pa nam vpa[i]);
cout< cout < stanum = stanum+1;
}
}
float Dijkstra(double *Map int *path int n int vint d)
{
float minks;
int ut;
float *dist = new float[n];
int *s = new int [n];
for(int i = 0; i < n; i ++)
{
dist[i] = Map[n * v + i];
s[i] = 0;
if (i != v && dist[i] < MaxInt) {
path[i] = v;
}
else
path[i] = -1;
}
s[v] = 1;
for(i = 0; i < n - 1; i ++)
{
min = MaxInt;
u = v;
for(int j = 0; j < n; j ++)
{
if (!s[j] && dist[j] < min) {
u = j;
min = dist[j];
}
}
s[u] = 1;
for(t = 0; t < n; t ++)
{
if (!s[t] && dist[u] + Map[n * u + t] < dist[t]) {
dist[t] = dist[u] + Map[n * u + t];
path[t] = u;
}
}
}
ks = dist[d];//现在只返回人要的那个目的值
return ks;
delete dist;
}
void main()
{
// cout << “请输入该图的结点数:“;
int n = 57;
// cin >> n;
double Map[57*57];
double *Ma = Map;//一维数组表示二维数组的内容
for (int i = 0; i < n * n; i ++)
Map[i] = MaxInt;
// cout << “请依次输入各结点的名称!“ << ‘\n‘;
string name[57];
string *nam = name;
int path[57];
int *pa=path;
name[0] = “刘园站“;
name[1] = “西横堤“;
name[2] = “果酒厂“;
name[3] = “本溪路“;
name[4] = “勤俭道“;
name[5] = “洪湖里“;
name[6] = “西站“;
name[7] = “西北角“;
name[8] = “西南角“;
name[9] = “二纬路“;
name[10] = “海光寺“;
name[11] = “鞍山道“;
name[12] = “营口道“;
name[13] = “小白楼“;
name[14] = “下瓦房“;
name[15] = “南楼“;
name[16] = “土城“;
name[17] = “陈塘庄“;
name[18] = “复兴站“;
name[19] = “华山里“;
name[20] = “财经大学“;
name[21] = “双林站“;
name[22] = “大卞庄“;
name[23] = “芥园西里“;
name[24] = “密云路“;
name[25] = “咸阳路“;
name[26] = “红旗路“;
name[27] = “青年路“;
name[28] = “鼓楼“;
name[29] = “东南角“;
name[30] = “天津站“;
name[31] = “新开路“;
name[32] = “红星路“;
name[33] = “靖江路“;
name[34] = “翠阜新村“;
name[35] = “天山路“;
name[36] = “南淀“;
name[37] = “合成洗涤剂厂“;
name[38] = “李明庄“;
name[39] = “化苑产业园区“;
name[40] = “天津工业大学“;
name[41] = “华苑站“;
name[42] = “王顶堤“;
name[43] = “红旗南路“;
name[44] = “水上公园“;
name[45] = “南开大学“;
name[46] = “西康路“;
name[47] = “和平路“;
name[48] = “华龙道“;
name[49] = “小树林“;
name[50
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 7929 2009-09-05 16:35 Dijkstra\Dijkstra.cpp
文件 3425 2009-09-05 16:33 Dijkstra\Dijkstra.dsp
文件 539 2009-09-05 17:00 Dijkstra\Dijkstra.dsw
文件 50176 2009-09-05 17:06 Dijkstra\Dijkstra.ncb
文件 53760 2009-09-05 17:06 Dijkstra\Dijkstra.opt
文件 1256 2009-09-05 16:35 Dijkstra\Dijkstra.plg
文件 529 2008-05-03 22:19 Dijkstra\Read Me.txt
目录 0 2009-11-26 22:13 Dijkstra\Debug
目录 0 2009-09-05 17:06 Dijkstra
----------- --------- ---------- ----- ----
117614 9
相关资源
- Floyd算法,求有向图中各顶点之间的最
- 2020年最新深圳地铁线+地铁站点矢量
- 最新上海地铁线路及其经纬度齐全.
- 图的最短路径算法实现实现.zip
- 蜂窝最短路径
- 基于K最短路径的多目标跟踪算法Mul
- 最短路径的开题报告
- 适应蚁群算法的最短路径搜索方法研
- 最短路径演示程序-带界面
- 全国地铁线路图
- 最短路径问题
- 链路状态路由算法dijkstra算法
- 求图中两点间的所有路径包括最短路
- 用弗洛伊德算法实现求最短路径的交
- 普通dijkstra代码加改进后的dijkstra代码
- 交通最短路径
- 中兴捧月算法大赛Dijkstra派解决方案
- 全国地铁坐标和名称,来源于百度附
- 基于FPGA设计地铁自动售票系统
- Anylogic应急疏散地铁换乘点模型二加入
- 数据结构课程设计 迷宫探索 要找出
- Dijkstra算法源代码
- 设计、实现一个全国大城市间的交通
- 多段图最短路径算法课实验
- 上海市地铁站点数据以及线路图
- 狄杰斯特拉最短路径算法实现
- 遗传算法——最短路径问题
- 图中任意两点间所有路径高效算法
- 北京地铁换乘--数据结构课程设计
- 最新的北京地铁shp文件shapefile文件
评论
共有 条评论