天天看点

算法学习之路|欧拉回路初见

欧拉道路,一个词概括就是一笔画。一张连通图能用一笔画不重复的走完每一条边的就是欧拉道路,起点和终点是同一点的是欧拉回路。

那么判断一张图是不是欧拉回路就可以通过记录每一点的度数,所有点度数均是偶数的是欧拉回路,有一到两个点度数是奇数的是欧拉道路,有两个点以上是奇数度数的不是欧拉道路。有向图条件更苛刻一点,需要点入度和出度相等才能构成欧拉回路,即使是欧拉道路也需要入度和出度相差仅为一,且这样的店不能超过两个。

七桥问题,给出一张图,判断是否是欧拉回路:

代码是照着模板敲的,用到了并查集,回顾了一下。

并查集用来判断两个节点是否同属于一个根节点,在这里用来判断图是否是连通图。

并查集把已经确定相互连接的两个集合并入一个集合,

此题只需判断是否欧拉回路,所以不必深究具体的道路,如果是求欧拉道路,判断点的度数使只需加上奇数不超过两个。

继续阅读