连通图的最小代价生成树成为最小生成树。
这里采用图的邻接矩阵存储结构来存储边上的权值。
将图中的n个节点按0~n-1编号,最后最小生成树的输出形式是两个节点编号代表的边。
以下程序在DEV C++中调试通过。
/*图的邻接矩阵存储结构和Prim算法实现最小生成树*/
#include <stdio.h>
#define MaxVertexNum 9
#define INFINITY 65535
typedef char VertexType; //顶点是字符型
typedef int EdgeType; //边是整型
typedef struct //图的邻接矩阵存储结构
{
VertexType vexs[MaxVertexNum]; //顶点向量
EdgeType edges[MaxVertexNum][MaxVertexNum]; //邻接矩阵
int vexnum,arcnum; //图中当前的顶点数和边数
}MGraph;
/* 邻接矩阵的建立*/
void CreateGraph(MGraph *G)
{
int i,j,k,weight;
char ch1,ch2;
printf("请输入顶点数和边数(输入格式为:顶点数,边数):");
scanf("%d,%d",&(G->vexnum),

该博客介绍了如何使用C语言实现图的Prim最小生成树算法,采用邻接矩阵存储结构,详细阐述了算法过程,并提及程序已在DEV C++环境中调试成功,时间复杂度为O(n^2)
最低0.47元/天 解锁文章
1311





