3-交通咨询系统设计-数据结构-课程设计任务书(2)

2019-01-07 18:24

printf(\以下是最短路径:\\n\

case 3:

scanf(\

case 0:

}

}

printf(\以下是最短路径:\\n\

case 4:

printf(\以下是最短路径:\\n\

case 5:

printf(\以下是最短路径:\\n\

default : printf(\输入有误,请重新输入\\n\ printf(\

main();

}

printf(\

main();

case 3:

Floyd(g); printf(\请选择:\ printf(\

main();

scanf(\

exit(-1);break;

default: printf(\输入有误,请重新输入\\n\

printf(\

main();

}

6

3.2.2狄克斯特拉函数

初始化距离和路径,将s[]置为空。将远点编号v放入s中,循环直到所有顶点的最短路径都求出,将mindis置最小长度初值,选取不在s中且具有最小距离的顶点u将顶点u加入s中,修改不在s中的顶点的距离,输出最短路径 void Dijkstra(MGraph g,int v) { int dist[MAXV],path[MAXV]; int s[MAXV]; int mindis,i,j,u; for(i=0;i

if(g.edges[v][i]

path[i]=v;

else path[i]=-1;

}

s[v]=1;path[v]=0; for(i=0;i

mindis=INF; for(j=0;j

u=j;

mindis=dist[j];

} s[u]=1;

for(j=0;j

{

7

}

}

}

dist[j]=dist[u]+g.edges[u][j]; path[j]=u;

Dispath(dist,path,s,g.n,v);

3.2.3 Ppath函数

前向递归查找路径上的顶点,找到起点则返回,找顶点k的前一个顶点,输出顶点k。

void Ppath(int path[],int i,int v) { }

3.2.4 Dispath函数

有path函数计算最短路径,搜索最短路径的所有边,输出路径上的起点,输出路径上的中间点,输出路径上的终点。

void Dispath(int dist[],int path[],int s[],int n,int v) {

int i;

for(i=0;i

if(s[i]==1&&dist[i]!=INF)

{ int k; k=path[i]; if(k==v) return; Ppath(path,k,v); printf(\

printf(\从%d到%d的最短路径长度为:%d\\t路径为:\

8

}

}

printf(\ Ppath(path,i,v); printf(\}

else printf(\从%d到%d不存在路径\\n\

3.2.5弗洛伊德函数

设置路径长度A和路径path初值。做k次迭代,每次均试图将顶点K扩充到点钱球

得的从i到j的最短路径Pij上,修开路径长度,输出最短路径。

void Floyd(MGraph g)

{ int path[MAXV][MAXV],A[MAXV][MAXV]; int i,j,k;

for(i=0;i

for(j=0;j

for(k=0;k

if(A[i][j]>A[i][k]+A[k][j])

{ A[i][j]=A[i][k]+A[k][j]; path[i][j]=k; }

}

3.2.6 Ppath2函数

向前递归查找路径上的顶点,找到了起点则返回,,找顶点i的前一个顶点k,找顶点k的前一个顶点j。在path中递归输出从顶点i到顶点j的最短路径

9

void Ppath2(int path[][MAXV],int i,int j) {

int k; k=path[i][j];

if(k==-1)return; }

3.2.7 DisPath2函数

由path计算最短路径,若顶点i和顶点j之间没有边,则输出i到j没有路径,若有边则输出路劲上的起点、中间点和终点。

void Dispath2(int A[][MAXV],int path[][MAXV],int n) { int i,j;

printf(\请输入起点和终点(i,j):\ scanf(\

if(A[i][j]==INF) {

if(i!=j)

printf(\从%d到%d没有路径\\n\} else {

printf(\从%d到%d路径为:\

Ppath2(path,i,k); printf(\Ppath2(path,k,j);

printf(\ Ppath2(path,i,j); printf(\

printf(\路径长度为:%d\\n\}

10


3-交通咨询系统设计-数据结构-课程设计任务书(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:企业营销战术策略研究毕业论文

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: