求dijkstra算法的C实现

来源:百度知道 编辑:UC知道 时间:2024/09/22 00:55:52
这是我们的作业,可我不太会做,想找高手帮忙设计这个程序。
要求很简单:任意结点数无向不加权图的dijkstra最短路径实现,能读入所给的.txt文件(邻接矩阵)并输出所有结点间的最短路径。
请好心人帮忙~~~
急!
谢谢!

输入时,将s,t,x,y,z五个点按照1,2,3,4,5起别名,输入格式按照下图例所示
当提示Please enter the vertex where Dijkstra algorithm starts:时输入算法的起始点
比如计算结果v1v4v2表示从点1到点2经过1,4,2为最短路径
Dijkstra算法的完整实现版本,算法的源代码
/* Dijkstra.c

Copyright (c) 2002, 2006 by ctu_85
All Rights Reserved.
*/
#include "stdio.h"
#include "malloc.h"
#define maxium 32767
#define maxver 9 /*defines the max number of vertexs which the programm can handle*/
#define OK 1
struct Point
{
char vertex[3];
struct Link *work;
struct Point *next;
};
struct Link
{
char vertex[3];
int value;
struct Link *next;
};
struct Table /*the workbannch of the algorithm*/
{
int cost;
int Known;
char vertex[3];
char path[3];
struct Table *next;
};
int Dijkstra(struct Point *,struct Table *);
int Pri