#include <iostream>
#include <stdio.h>
using namespace std;
#define MAXV 50
#define INF 1000000000
typedef int InfoType;
//邻接矩阵存储方法
typedef struct
{
int n;
int edges[MAXV][MAXV];
} MGraph;
FILE *f_in;//输入
FILE *f_out;//输出
int n;//n个点
//狄克斯特拉算法
//递归输出
void Ppath(int path[],int i,int v)
{
int k;
k = path[i];
if(k == v) //递归出口
return;
Ppath(path,k,v);
fprintf(f_out,"%d->",k);
}
//判断两点之间是否存在路径
int biaoji1=1,biaoji2=0;
void Dispath(int dist[],int path[],bool s[],int n,int v)
{
int i;
for(i = 0;i < n;i ++)
{
if(i == v)
continue;
if(s[i] == 1)//证明v到i存在最短一条路
{
fprintf(f_out,"从%d到%d的最短距离为:%d ",v,i,dist[i]);
fprintf(f_out,"路径为 : ");
fprintf(f_out,"%d->",v);
//递归入口
Ppath(path,i,v);
fprintf(f_out,"%d\n",i);
if(biaoji1 + 1 != n)
{
biaoji2+=dist[i];biaoji1++;
}
else
{
fprintf(f_out,"和为:%d\n",biaoji2);
biaoji1=1;biaoji2=0;
}
}
else
fprintf(f_out,"从%d到%d不存在的路径\
数据结构课程设计(医院选址)代码
最新推荐文章于 2021-07-05 13:35:21 发布