//Prim最小生成树
private static void Prim(Graph g,int v){
int lowCost[]=new int[g.vexnum];//从v开始其余结点进树的最小代价
int isJoin[]=new int[g.vexnum];//1为已经加入
int gt[][]=toArray(g);//邻接表转二维数组
int min=0;
for (int i = 0; i <gt.length; i++) {//初始化
lowCost[i]=gt[v][i];
}
isJoin[0]=1;
for (int k = 0; k <lowCost.length; k++) {//最外层循环
for (int i = 0; i <lowCost.length; i++) {//找到每次lowCost[]里最小的的值的i
if (isJoin[i]!=1){
if (lowCost[min]>lowCost[i])min=i;
}
}
isJoin[min]=1;//标记访问
for (int j = 0; j <gt.length; j++) {//用新加入结点更新最小代价
if (isJoin[j]!=1&>[min][j]<lowCost[j])lowCost[j]=gt[min][j];
}
min=0;//重置min
}
lowCost[v]=0;//将lowCost[v]的值从intMax -> 0
}