プリムアルゴリズム

1325 ワード

#include 
#include 
using namespace std;

typedef struct MGraph {
	string vexs[10];//    
	int arcs[10][10];//    
	int vexnum, arcnum;
} MGraph;

typedef struct Closedge {
	string adjvex;    //   u      
	int lowcost;     //       
} minside[10];


int LocateVex(MGraph G, string u) { //    u      
	for(int i=0; i>G.vexnum>>G.arcnum;

	cout<>G.vexs[i];

	for(i=0; i>v1>>v2>>w;
		i=LocateVex(G, v1);
		j=LocateVex(G, v2);
		G.arcs[i][j]=G.arcs[j][i]=w;
	}
}

int minimum(minside sz, MGraph G) { // sz lowcost    ,    
	int i=0, j, k, min;
	while(!sz[i].lowcost)
		i++;
	min=sz[i].lowcost;
	k=i;
	for(j=i+1; j0 && min>sz[j].lowcost) {
			min=sz[j].lowcost;
			k=j;
		}
	}

	return k;

}

void MiniSpanTree_PRIM(MGraph G, string u) { //     
	int i, j, k;
	minside closedge;
	k=LocateVex(G, u);                  //k   u   
	for(j=0; j