图的邻接矩阵存储在Prim算法这部分有提及。
http://blog.csdn.net/u011240016/article/details/52414818
//使用邻接矩阵存储
#include<stdio.h>
#include<stdlib.h>
#define MAX_VERTEX_NUM 20
#define INF 10000 // 表示顶点之间不可达
#define FALSE 0
#define TRUE 1
typedef int bool;
typedef struct ArcCell //若info用不到,可以直接定义AdjMatrix[20][20],这里用最难的方式实现
{
int adj;//存储边之间的权值
// int info; //这里用不到
} ArcCell,AdjMatrix[MAX_VERTEX_NUM][MAX_VERTEX_NUM];
// 定义图
typedef struct
{
int vexs[MAX_VERTEX_NUM];//顶点向量,存储顶点内容
AdjMatrix arcs;//存储顶点之间的关系
int vexnum, arcnum;//图的顶点数和边数
}MGraph;
int LocateElem(MGraph *G, int c)
{
for(int i = 0; i < G->vexnum;i++)
{
if(G->vexs[i] == c)
return i;
}
return MAX_VERTEX_NUM; //返回一个矩阵中不用的下标数字即可
}
void CreateGraph(MGraph *G)//构造图
{
printf("请输入顶点数,边数:\n");