Dijkstra算法的的简介就不再写了,已经有很多比较好的资源讲述了Dijkstra算法的原理与步骤。
本博客直接讲述解题方式和代码编程。
一、Dijkstra解题
ps:忽略丑字,写这两个把我折磨惨了~
二、C语言编程
针对上面的问题来进行C语言编程,直接上代码
1、dijkstra.c:
#include<stdio.h>
#include<stdlib.h>
#define NUMS 8
#define INF 65535
typedef struct
{
char vertex[NUMS];
char fVertex[NUMS];
int distance[NUMS];
int edges[NUMS][NUMS];
int n,e;
}Graph;
void Ppath(Graph G);
void ReadGraph(Graph *G)
{
int i,j;
FILE * fp = fopen("dij.txt","r");
G->n = NUMS;
G->e = NUMS * NUMS;
for(i=0; i<NUMS; i++)
{
for(j=0; j<NUMS; j++)
{
fscanf(fp,"%d",&(G->edges[i][j]));
}
}
}
void Djikstra(Graph G)
{
int i,j,k,tmp;
for(i=0; i