一、图的基本要素
1.顶点/节点(vertex);
2.边(edge),连接两个点,可以为无向边也可以为有向边,可以为有权边也可以为无权边;
3.连通图:图上的任意两个点之间都是连通的。 即是任意两个点都有一条或者多条边连接着。
4.连通分量:最大连通子图。即是①是该图的子图;②该子图是连通的;③是含节点数最多的子图。
二、两种基本遍历算法
学习、参考的代码:https://blog.youkuaiyun.com/u011437229/article/details/53188837
其中对DFS和BFS的思想举例很形象。
1、深度优先搜索(DFS)
参考博客:https://blog.youkuaiyun.com/liangzhaoyang1/article/details/51415719
思想:顾名思义,深度优先,就是从一个顶点开始,往下搜索与该顶点相邻的节点,一直搜到所搜的节点不存在相邻节点,然后开始回溯,往回走,一次回到上一个节点,搜索其他路径,知道遍历所有的节点或者找到解为止。
核心代码:
void DFS(int cur)// cur为当前的点
{
if(边界条件或者需要判断的条件) //条件可以有多个,即有多个 if 语句
{
执行所需的操作;
return ;
}
做需要执行的操作;
如在走一张图时要分别搜索上下左右四个方向,则有一个for循环,每次走一个方向
//执行完应有的操作后,选择符合条件的节