一、问题
1、举一个实例,画出采用Prim算法构造最小生成树的过程。
2、举一个实例,画出采用Kruskal算法构造最小生成树的过程。
二、解析
Prime算法适合边多定点少,kruskal算法适合边少定点多情况
三、设计
Prime算法:
#include<stdio.h>
#define MAX 10000
#define VUMN 10+1 //这里,没有id为0的点,所以id号范围是1~10
int edge[VUMN][VUMN]={/输入的邻接矩阵/};
int lowcost[VUMN]={0}; //记录Vnew中每个点到V中邻接点的最短边
int addvnew[VUMN]; //标记某点是否加入Vnew
int adjecent[VUMN]={0}; //记录V中与Vnew最邻近的点
void prim(int start){
int sumweight = 0;
int i,j,k = 0;
for(i = 1;i<VUMN;i++){ //顶点是从1开始
lowcost[i] = edge[start][i];
addvnew[i] = -1; //将所有点至于Vnew之外,V之内,这里只要对应的为-1,就表示在Vnew之外
}
addvnew[s