西工大noj数据结构22题 迪杰斯特拉算法

西工大noj数据结构22题 迪杰斯特拉算法,第1张

#include 
#include 
#define MAX 100
#define infinity  100
typedef struct
{
	int vexs[MAX];
	int arcs[MAX][MAX];
	int arc_count,vex_count;
}graph;
typedef struct 
{
	int weight;
	int visited;
}lnode;
typedef struct 
{
	int vertex;
	int length;
	int prevex;
}path;
int main()
{
	graph p;
	path dist[MAX];
	scanf("%d %d",&p.vex_count,&p.arc_count);
	for(int i=0;idist[minvex].length+p.arcs[minvex][j]) {
                dist[j].length=dist[minvex].length+p.arcs[minvex][j];
                dist[j].prevex=minvex;
            }
        }
        if(dist[note].length==MAX)
        dist[note].length=-1;
        printf("1 %d %d\n",note+1,dist[note].length);
  }
	return 0;
}
//test
/*
6 11
1 2 50
1 3 10
1 5 45
2 3 15
2 5 10
3 1 20
3 4 15
4 2 20
4 5 35
5 4 30
6 4 3
*/
/*output
1 3 10
1 4 25
1 2 45
1 5 45
1 6 -1
*/



写的不好,凑合看一下,但是确实自己写的

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/914852.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-16
下一篇 2022-05-16

发表评论

登录后才能评论

评论列表(0条)

保存