图的算法实现 急急急~~~~~~~~~

来源:百度知道 编辑:UC知道 时间:2024/06/15 06:25:44
设计要求:
(1)将图的信息建立文件;
(2)从文件读入图的信息,建立邻接矩阵和邻接表;
(3)实现Prim、Kruskal、Dijkstra和拓扑排序算法。

程序如下,稍加改动即可。
带权有向图的最短路径的求解
//带权有向图的最短路径的求解
#include <stdio.h>
#include <stdlib.h>
#define MAXV 50
#define INF 32767
typedef int InfoType;
//邻接矩阵存储方法
typedef struct
{
int no;
InfoType info;
} VertexType;
typedef struct
{
int edges[MAXV][MAXV];
int n,e;
VertexType vexs[MAXV];
} MGraph;
//狄克斯特拉算法
void Ppath(int path[],int i,int v)
{
int k;
k=path[i];
if(k==v) return;
Ppath(path,k,v);
printf("%d,",k);
}
void Dispath(int dist[],int path[],int s[],int n,int v)
{
int i;
for(i=0;i<n;i++)
{
if(i==v) continue;
if(s[i]==1)
{
printf("从%d到%d的最短路径长度为:%d\t路径为:",v,i,dist[i]);
printf("%d,",v);
Ppath(path,i,v);
printf("%d