图论专项菜鸡入门(二):图的遍历

图的第二部分接着上一篇。。

图的遍历这部分分成了三个知识点,DFS.BFS,图的拓扑排序,图的欧拉路径、欧拉回路

按照我的理解顺序来写的。

一.图的欧拉路径、欧拉回路

这个知识点第一次接触实在大一下的离散数学中==当时只是知道一部分性质。。为了应付考试,这次系统一点的总结一下。
先看定义!
欧拉路径:从某结点出发一笔画成所经过的路线叫做欧拉路径。
欧拉回路:在欧拉路径的基础上又回到起点。
简单来说,欧拉路径和回路其实就很像小时候玩的一笔画==
他的作用就是来判断一个图是否能一笔画下来==
所以从这可以引申出这俩的判定定理
欧拉回路:(度数就是定点连的边的个数)
无向图:每个顶点的度数都是偶数,则存在欧拉回路。
有向图:每个顶点的入度都等于出度,则存在欧拉回路。
欧拉路径:
无向图:当且仅当该图所有顶点的度数为偶数 或者 除了两个度数为奇数外其余的全是偶数。
有向图:当且仅当该图所有顶点 出度=入度 或者 一个顶点 出度=入度+1,另一个顶点 入度=出度+1,其他顶点 出度=入度。

性质
a、凡是由偶点组成的连通图,一定可以一笔画成。画时可以把任一偶点为起点,最后一定能以这个点为 
终点画完此图。   
b、凡是只有两个奇点的连通图(其余都为偶点),一定可以一笔画成。画时必须把一个奇点为起点,另 
一个奇点终点。  
c、有向图的欧拉回路则是指可以从某一顶点开始,沿有向边的方向不重复地遍历所有边,然后回到原来出发的顶点。用类似于定理一中证明的思路,可以得到有向图一笔画的判定准则
d、其他情况的图都不能一笔画出。(有偶数个奇点除以2便可算出此图需几笔画成。)
性质可以通过哈理工一次校赛的题目看出,稍后补上==

二.图的拓扑排序

先给出定义

拓扑排序是对有向无圈图(DAG)顶点的一种排序,它使得如果存在u,v的有向路径,那么满足序中uv前。拓扑排序就是由一种偏序(partical order)得到一个全序(称为拓扑有序(topological order))。偏序是满足自反性,反对称性,传递性的序。

看着很复杂吧。按照我的理解来说,就是图中的闯关游戏一样。你要解锁这个点,就要先把一直与这个点以前相连的点删去。
通俗一点说,就是boss要一个个打。。先很容易消灭那些没有部下的boss,然后让他上面的boss也失去了跟他一样的小boss,然后我们一步一步的打,就能解决所有的boss
从百度百科上偷一张图。。
基本的算法实现:

1. 把所有入度=0的点入队Q

2. 若队Q非空,则点u出队,输出u;否则转4

3. 把所有与点u相关的边(u,v)删除,若此过程中有点v的入度变为0,则把v入队Q,转2

4. 若出队点数<N,则有圈;否则输出结果。

 算法复杂度: O(m)

运用到队列的知识

三.DFS.BFS

这里只是稍微介绍一下,毕竟深搜和广搜也算是ACM中的基本算法,会另外开一个专题进行讲解,这里就不占用这里的空间和时间复杂度了==稍微一提

DFS在我看来,是一种很优雅的暴力。在搜索的过程中一旦遇到一个未标记的顶点,就沿着这个顶点继续搜索,直至遍历完所有可达的顶点。DFS具有回溯的性质,也应用了记忆化搜索的感觉。由此形成的搜索树很瘦很高。执行DFS时,同时会维护一个时间戳,以此记录每个顶点被搜索到的顺序。

BFS则相反,遇到一个未搜索的顶点时,先将与该顶点邻接的搜索完,然后进入下一轮搜索。与源点距离为k+1的顶点总是在所有与源点距离小于等于k的所有顶点都搜索完之后才被遍历。

DFS与BFS在应用中各有不足,BFS在对于不区分边权值的图,BFS能计算出最短路径——DFS对此无能为力。

而DFS在形成的搜索树包含不同类型的边(树边,回边,下边以及交叉边),边的性质能通过时间戳识别出来。

在应用的时候需要注意



猜你喜欢

转载自blog.csdn.net/AC_Meiko/article/details/76736472
今日推荐