C语言最短路径问题

   更新日期:2024.04.19
int main()
{
int G[100][100] = {};
//一个记录图的邻接矩阵
int a, b, w;
//输入一共有7条边, 5个点
int i, j, k;
for(i = 1;i <= 5;i++)
for(j = 1;j <= 5;j++)
G[i][j] = 9999999;
for(i = 1;i <= 7;i++)
{
scanf("%d %d %d", &a, &b, &w);//输入每条边的信息,a和b代表这条边的两个顶点w代表两个点的距离
G[a][b] = w;
G[b][a] = w;
}
for(k = 1;k <= 5;k++)
for(i = 1;i <= 5;i++)
for(j = 1;j <= 5;j++)
if(G[i][j] > G[i][k] + G[k][j])
G[i][j] = G[i][k] + G[k][j];
printf("%d", G[1][4]);//输出两点之间的最短路,这里的两个点是3和5
return 0;
}
G[i][j]代表i到j的距离,甲,乙,丙,丁,戊用1,2,3,4,5代替
如果你还不懂的话,就看一些关于图论的问题,这个最短路是图论中的一个经典题

其实50分是不够的;给点提示你可以使用图来解,这个试图的最短路径的查找。
把所有的甲、乙、丙、丁、戊都做成具有后续指针的节点,然后便利这张图,找到最短路径

  • 19153495262 :c语言最短路径问题。
    傅凡可2241 :答:int ee[N], el[N]; /* 最长最短距离 */ int path_e[N][N], path_l[N][N], n_e[N], n_l[N]; /* 记录路径数据 */ /* 初始化数据 */ for (i = 0; i < N; i++) { n_e[i] =...
  • 19153495262 :...从A出发,最终回到A。 求最短路径问题。 可用穷举来完成。
    傅凡可2241 :答://这个算法名字叫迪杰斯特拉算法#include<stdio.h>#include<stdlib.h>#define max 11000000000inta[1000][1000];intd[1000];//d表示某特定边距离intp[1000];//p表示永久边距离inti,j,k;intm;//m代表边数intn;//n...
  • 19153495262 :如何用C语言实现求迷宫的最短路径?
    傅凡可2241 :答:}while(k!=0);printf("迷宫最短路径如下:\n");k=0;while(k<Max){ if(Qu[k].pre==-1)
  • 19153495262 :给出坐标的几点之间的最短路径问题 用C语言解 求高手帮忙
    傅凡可2241 :答:最笨的枚举法,先算第一个点距离剩下点的最短路径,然后把第一点排除最外求剩下点最短,循环直到剩下两点。include <stdio.h> include <stdlib.h> define N 10 //返回最短距离的平方,两个点下标分别存在index1和in...
  • 19153495262 :C语言高手!!帮忙写个最短路径程序!!!
    傅凡可2241 :答://操作结果:寻找最短路径 void Dispath(int A[][MAX],int path[][MAX],int n,vexnode g[]);//初始条件:已知顶点g和数目n及其权值 //操作结果:显示最短路径 void Floyd(adjmax adj,int n,vexnode g[]);/...
  • 19153495262 :求如下有向图的关键路径以及任意两点之间的最短距离?
    傅凡可2241 :答:用CPM算法求有向图的关键路径和用Dijkstra算法求有向图的最短路径的C语言程序如下 include <stdio.h> include <malloc.h> include <stdlib.h> include <string.h> define MAX 20 define INF 32767 // 此处修改最大...
  • 19153495262 :迷宫问题(栈或队列,最短路径)(c语言)
    傅凡可2241 :答:while(!StackEmpty(S1)) //栈不为空 有路径可走 { Pop(S1,elem);i=elem.x;j=elem.y;d=elem.d+1; //下一个方向 while(d<4) //试探东南西北各个方向 { a=i+diradd[d][0];b=j+diradd[d][1];if(...
  • 19153495262 :c语言编写路线
    傅凡可2241 :答:int pp[MAX-1];// 记录最短路径 typedef struct graphnode { int vexnum; //顶点 int arcnum; //弧 int gra[MAX][MAX]; //邻接矩阵表示0或1 }Graph;int dist[MAX]; // 最短距离 int arc[MAX][MAX];...
  • 19153495262 :一、设计一个校园导游程序,为来访的客人提供信息查询服务。 要求:(1...
    傅凡可2241 :答:printf("最短路径为:\n");for(i=1;path[w][i]!=0;i++)printf("-->%d",path[w][i]);printf("\n");printf("最短路径的长度为: %d\n",D[w]);} 主要特点 C语言是一种结构化语言,它有着清晰的层次...
  • 19153495262 :C语言算法有哪些 并举例和分析
    傅凡可2241 :答:C. Dijkstra 算法: vara:array[1..maxn,1..maxn] of integer;b,pre:array[1..maxn] of integer; {pre[i]指最短路径上I的前驱结点}mark:array[1..maxn] of boolean;procedure dijkstra(v0:integer);beginfillchar(mark...
  • 相关链接

    欢迎反馈与建议,请联系电邮
    2024 © 视觉网