普里姆算法时间复杂度为O(n^2),适用于求边稠密的网的最小生成树
#include <stdio.h>
#include <stdlib.h>
#include "AdjMatrix.h" //该文件包含了邻接矩阵结构表示的图的创建程序
struct
{
VertexType adjvex;
VRType lowcost;
}closedge[MAX_VERTEX_NUM];
void MiniSpanTree_PRIM(MGraph G,VertexType u);
int main()
{
MGraph *G;
G=(MGraph *)malloc(sizeof(MGraph));
CreateGraph(G);
int i,j;
for(i=0;i<G->vexnum;i++)
{
for(j=0;j<G->vexnum;j++)
{
if(G->arcs[i][j].adj==INFINITY)
printf("N ");
else
printf("%d ",G->arcs[i][j].adj);
}
printf("\n");
}
MiniSpanTree_PRIM(*G,G->vexs[0]);//从第一个顶点出发
return 0;
}
void MiniSpanTree_PRIM(MGraph G,VertexType u)
{
int i,j,k;
k=LocateVex(G,u);
for(j=0;j<G.vexnum;j++)
if(j!=k)
{
clo