www.pudn.com > XiaoYuanDaoYouTu.rar > Prim.cpp


#include  
#include "Graph.h" 
#include "Edge.h" 
#include "minheap.h" 
 
char getView(int number); 
 
//添加边 
void AddEdgetoMST(int i,int j,Edge *MST,int tag) 
{ 
	MST[tag].m_nFrom = i; 
	MST[tag].m_nTo = j; 
} 
 
//最小支撑树的Prim算法,寻找下一条权最小的边采用最小堆的方式 
void Prim(Graph& G, int s)         
{	 
	int MSTtag=0;                            //最小支撑树边的标号 
	Edge *MST=new Edge[G.VerticesNum()-1];   //存储最小支撑树的边 
	int Etag=0; 
	Edge *E=new Edge[G.EdgesNum()]; 
 
	for(int i=0; i H(E,Etag,G.EdgesNum()); 
 
	for(i=1; i