数据结构之---C语言实现最短路径之Dijkstra(迪杰斯特拉)算法

此处共有两段代码:

一、

这段代码比较全面,其中参考了github上的相关源码。可以说功能强大。

//Dijkstra(迪杰斯特拉算法)
#include 
#include 
#include 


#define MAX         100                 // 矩阵最大容量
#define INF         65535        		// 最大值65535
#define isLetter(a) ((((a)>='a')&&((a)<='z')) || (((a)>='A')&&((a)<='Z')))
#define LENGTH(a)   (sizeof(a)/sizeof(a[0]))

// 图的邻接矩阵存储
typedef struct _graph
{
    char vexs[MAX];       // 顶点集合
    int vexnum;           // 顶点数
    int edgnum;           // 边数
    int matrix[MAX][MAX]; // 邻接矩阵
}Graph, *PGraph;

// 边的结构体
typedef struct _EdgeData
{
    char start; // 边的起点
    char end;   // 边的终点
    int weight; // 边的权重
}EData;

/*
 * 返回ch在matrix矩阵中的位置
 */
static int get_position(Graph G, char ch)
{
    int i;
    for(i=0; i

你可能感兴趣的:(数据结构,C,&&,C++,算法)