//无向网的最小生成树
#ifndef H_meTreeType
#define H_msTreeType
#include"graphType.h"
using namespace std;
template
class msTreeType:public graphType//最小生成树,使用Prim算法
{
public:
void createSpanningGraph();//创建图及加权矩阵
void minimalSpanning(vType sVertex);//实现Prim算法
void printTreeAndWeight();
protected:
vType source;
int weights[size][size];
int edges[size];
int edgeWeight[size];
};//因为没有使用指针所以不需要使用默认构造函数和析构函数
template
void msTreeType::createSpanningGraph()
{
source.createGraph();
for (j=0;j
void msTreeType::minimalSpanning(vType sVertex)
{
int i,j,k;
vType startVertex,endVertex;
int minWeight;
source=sVertex;
bool mstv[size];
for (j=0;j)
{
for (k=0;k
void msTreeType::printTreeAndWeight()
{
int treeWeight=0;
cout<<"Source Vertex: "< |