原理:天勤P185-P189
算法说明:
(1)定义邻接矩阵的数据结构,分两部分:
- 邻接矩阵顶点类型(用来存储顶点信息比如编号、字符数据。不常用,因为编号信息意义不大,字符数据按题目要求来);
- 邻接矩阵表(包含一个二维数组,顶点个数,边个数);
(2)先读取顶点个数n和边数e。然后对邻接矩阵的初始化,对于无权图,全部初始化为0,对于有权图的时候在循环里加一句判断,如果i==j,就赋值为0;
(3)设置三个变量v1,v2,w,分别表示从键盘或者文件中读取的两个顶点以及权值。然后根据读取的边数e做一个循环,逐条的将边值信息读取进去
(4)最后根据需要读取顶点信息。
邻接矩阵的创建:
#include <stdio.h>
#include <stdlib.h>
#define maxSize 50
typedef struct
{
int num;
char info;
}VertexType;
typedef struct
{
int edges[maxSize][maxSize];
int n, e;//顶点数,和边数
VertexType vex[maxSize];//存放结点信息
}MGraph;
MGraph G;
int visit[maxSize];
void BuildGraph()
{
int i,j;
int v1, v2,w;
//Create Graph
scanf("%d",