0001 template <typename Tv, typename Te> struct PrimPU { //针对Prim算法的顶点优先级更新器 0002 virtual void operator()( Graph<Tv, Te>* g, Rank v, Rank u ) { 0003 if ( UNDISCOVERED == g->status( u ) ) //对于v每一尚未被发现的邻接顶点u 0004 if ( g->priority( u ) > g->weight( v, u ) ) { //按Prim策略做松弛 0005 g->priority( u ) = g->weight( v, u ); //更新优先级(数) 0006 g->parent( u ) = v; //更新父节点 0007 } 0008 } 0009 };