什么是最小生成树,请大家看看离散数学书.
自定义结构体
#define Max 100
#define MaxNode 10
typedef char VexType;
typedef int AdjType;
typedef struct{
int n;
VexType vexs[MaxNode];//保存节点
AdjType arcs[MaxNode][MaxNode];//从矩阵获得节点与节点间的距离
}GraphMatrix;
typedef struct{
int start_vex,stop_vex;//起点和终点
AdjType weight;//边的权值
}Edge;
arcs[][]二维数组用来存储节点与节点之间的距离
Edge用来记录变得结构体,一条边有开始节点和停止节点,以及这条边的权值。
程序读取矩阵
首先,节点与节点之间的距离即边的权值用一个矩阵表示比较方便。我们可以把一个矩阵卸载一个txt文档里,再用程序读取,存在数组里。
下图就是存在txt文档里的矩阵
来看一下代码
void CreateGraph(GraphMatrix *G,int n)
{
int i,j,k=1;
FILE *fp;
G->n = n;
for(i=0;i<n;i++)