ZKX's LAB

最短路径问题(short.pas) java实现两点之间最短路径问题

2020-10-04知识9

最短路径问题(short.pas) 用SPFA可以秒过

最短路径问题(short.pas) java实现两点之间最短路径问题

C语言打印图中两点之间的所有路径,不是最短路径!!!谢谢高手麻烦帮忙 代码要实现哈! 这是我写的程序和运行的结果,如果有不会的地方依然可以问我。首先我想说明几点问题。1.我不知道你的题意中的路径是单向的还是双向的,不过我把路径设置成双向的了2.说一下我程序的输入,首先输入一个n,表示该图中有n条路;然后有n行,每行两个数x,y(1,y),表示这两个地点有一条路径。最后输入两个数,表示计算这两点之间所有的路径3.我的思路用的是深搜,不过广搜也是可以的includeincludeint path[100][100];path[i][j]为0表示i,j两点之间不通,为1表示有一条路int stack[120],m=1,n,x,y;存储路径void dfs(int p){int i,j;for(i=1;i;i+){if(path[p][i]=1){if(i=y)/如果深搜到了终点,就输出刚才经过的路径{for(j=0;j;j+){printf(\"%-5d\",stack[j]);}printf(\"%-5d\\n\",y);}else/如果该点不是终点{stack[m]=i;将该点存起来m+;dfs(i);接着深搜m-;}}}}int main(){int i,j;memset(path,0,sizeof(path));scanf(\"%d\",&n);for(i=0;i;i+){scanf(\"%d%d\",&x,&y);path[x][y]=path[x][y]=1;这两点之间有路径}scanf(\"%d%d\",&x,&y);stack[0]=x;dfs(x);}

最短路径问题(short.pas) java实现两点之间最短路径问题

数据结构课程设计作业:求任意两点的最短路径问题,写个完整的程序..急求啊。小弟上学期没学好..解决加分谢 一:include\"stdafx.hincludeincludeincludeusing namespace std;const int MAXINT=numeric_limits<;int>;:max();templatevoid Dijkstra(int n,int v,Type dist[],int prev[],Type*c){bool*s=new bool[n+1];int i,j;for(i=1;i;i+){dist[i]=c[v][i];if(c[v][i]。MAXINT)prev[i]=v;else prev[i]=0;s[i]=false;}s[v]=true;dist[v]=0;prev[v]=0;for(i=1;i;i+){int u=v;int temp=MAXINT;for(j=1;j;j+)if。s[j]&dist[j]){u=j;temp=dist[j];}s[u]=true;for(j=1;j;j+){if(。s[j])&c[u][j]){if((dist[u]+c[u][j])[j]){dist[j]=dist[u]+c[u][j];prev[j]=u;}}}}delete[]s;}void djpath(int m,int v,int prev[]){int i=m,j=1;while(i。0){if(j=1){cout;j=0;}elsecout;i=prev[i];}cout;}int_tmain(int argc,_TCHAR*argv[]){cout最大整数:\";int prev[6],dist[6];int i,j,n;int*myc;FILE*fp;fp=fopen(\"data.txt\",\"r\");fscanf(fp,\"%d\",&n);myc=new int*[n+1];for(i=0;i;i+)myc[i]=new int[n+1];for(i=1;i;i+)for(j=1;j;j+){fscanf(fp,\"%d\",&myc[i][j]);if(myc[i][j]=-1)myc[i][j]=MAXINT;}Dijkstra(5,1,dist,prev,myc);for(i=1;i;i+)cout[i];for(i=。

最短路径问题(short.pas) java实现两点之间最短路径问题

求!Dijkstra算法计算两点之间最短路径的过程, 万分感谢啊。

java 最短路径问题 我觉得是你的ide抽筋了,要不然检查下括号是不是不成对,或者你再给点详细的信息?

Dijkstra最短路径算法用C#实现,比如有北京市的地图,点两个点就能显示出两点之间的最短路径。 你大概理解的有些问题,Dijkstra最短路径算法是在已知A到B点有n条路径,每条路径上可能有N个点,而且点与点之间距离已知的情况才能算的,你在地图上点两个点,这些信息都没有的,这种地图上的路径也不是你能自己计算的,数据只有地图商那才有,你通常也不可能拿到的,唯一的方法是调用地图商提供的路径规划API(比如google地图、高德和等等),来计算出路径。

#最短路径#grasshopper

随机阅读

qrcode
访问手机版