在网上看了这么多人的博客之后,早就想打算自己动手来写一篇。但是完美主义害死人啊,踌躇了很长时间都没有迈出第一步。正好这两天编码状态不好,索性把之前学的东西整理整理。
那么第一篇文章就从最近研究的图的两种遍历开始吧。
目前学到图有两种实现方式:邻接矩阵和邻接表,今天先搞定邻接矩阵。
头文件和一些预处理
#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;

这篇博客介绍了如何使用邻接矩阵实现有向图的深度优先搜索(DFS)和广度优先搜索(BFS)。作者在实现DFS时遇到了问题,补充了完整的代码,并指出在BFS中对visited数组的判断是必要的。文章以一个具体的图为例,展示了遍历过程,最后作者反思了自己的学习进度和效率。
最低0.47元/天 解锁文章
1588

被折叠的 条评论
为什么被折叠?



