在网上看了这么多人的博客之后,早就想打算自己动手来写一篇。但是完美主义害死人啊,踌躇了很长时间都没有迈出第一步。正好这两天编码状态不好,索性把之前学的东西整理整理。
那么第一篇文章就从最近研究的图的两种遍历开始吧。
目前学到图有两种实现方式:邻接矩阵和邻接表,今天先搞定邻接矩阵。
头文件和一些预处理
#include <iostream>
#include <cstdio>
#include <queue>
using namespace std;
数据结构
typedef char VexType; //定义顶点命名方式
const int MAXM = 50; //最大顶点数
int visited[MAXM] = {
0}; //visited数组来表示对应的顶点是否遍历过
queue <int> q;
typedef struct{
int vexnum, arcnum; //分别表示顶点数目,边的数目
VexType vexs[MAXM]; //定义存储顶点名字的数组
int arcs[MAXM][MAXM]; //邻接矩阵
}MGraph;
创建图