最小生成树算法,急!

来源:百度知道 编辑:UC知道 时间:2024/06/03 03:51:41
用下面的算法遍一个最小生成树的算法
void prim(MGraph G)
{
for (i=1; i<G.vertexNum;i++)
{
lowcost[i]=G.arc[0][i];
adjvex[i]=0;
}
lowcost[0]=0;
for (i=1;i<G.vertexNum;i++)
{
k=MinEdge(lowcost,G.vertexNum)
cout<<"("<<k<<adjvex[k]<<")"lowcost[k];
lowcost[k]=0;
for (j=1;j<G.vertexNum;j++)
if G.arc[k][j]<lowcost[j]{
lowcost[j]=G.arc[k][j];
adjvex[j]=k;
}
}
}

已编译确认,编译环境vs2005/dev-cpp
#include<limits.h> /* INT_MAX等 */
#include<stdio.h> /* EOF(=^Z或F6),NULL */
#include<conio.h>
#include<math.h> /* floor(),ceil(),abs() */

#define TRUE 1
#define FALSE 0
#define OK 1
#define ERROR 0
typedef int Status; /* Status是函数的类型,其值是函数结果状态代码,如OK等 */
typedef int VRType;
typedef char InfoType;
#define MAX_NAME 3 /* 顶点字符串的最大长度+1 */
#define MAX_INFO 20 /* 相关信息字符串的最大长度+1 */
typedef char VertexType[MAX_NAME];
#define INFINITY INT_MAX /* 用整型最大值代替∞ */
#define MAX_VERTEX_NUM 20 /* 最大顶点个数 */
typedef enum{DG,DN,AG,AN}GraphKind; /* {有向图,有向网,无向图,无向网} */
typedef struct
{
VRType adj; /* 顶点关系类型。对无权图,用1(是)或0(否)表示相邻否; */
/* 对带权图,c则为权值类型 */
InfoType *info; /* 该弧相关信息的指针(可无) */
}ArcCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];
typedef struct
{
VertexType vexs[MAX_VERTEX_NUM]; /* 顶点向量 */
AdjMatrix