1. 欧拉路径(欧拉回路)是图论非常重要的组成部分,欧拉路径是数学家欧拉在研究著名的德国哥尼斯堡(Koenigsberg)七桥问题时发现的。这一发现直接导致了一门新的理论研究的诞生-图论问题。
  2. 欧拉路径和欧拉回路区别
    在一个连通图上,如果从一个顶点出发,历经访问所有的边,访问边的次数规定有且仅有一次,回到另外一个顶点,那么这个连通图中就包含欧拉路径。
    为了更好的理解,我们从以绿色顶点为起点,对无向图中的8条边,访问1次且仅为1次后,最后到达桔色终点。按照1-2-3-4-5-6-7-8的次序访问,此路径便形成一条欧拉路径。另外,下述无向图的欧拉路径的访问次序不唯一,读者可以考虑以下其它访问次序的可能性。


值得一提的是,上图中的欧拉路径虽然有不同的顺序,当时起点/终点(可以互换)必须保持不变,如果选择从除这两点之外的其它点出发,是无法完成欧拉路径的遍历过程的。
上面讨论的都是欧拉路径,读者就会问,那什么是欧拉回路(Euler Circuit)呢? 欧拉回路实际上是一类特殊的欧拉路径,其本身属于欧拉路径,同时需要起点和终点在同一点,满足起点和终点为同一点的欧拉路径就是欧拉回路。为了让大家更清晰理解,我们以图为例。

在欧拉路径的基础上,我们通过#9号边和#10号边,让之前滞留在对面的终点重新回到起点。欧拉回路可以从图中的任意一点开始,都可以回到此点,所以欧拉回路可以有多种遍历形式。
3. 欧拉路径和欧拉回路的算法思想,欧拉路径算法思想包含Hierholzer算法和Fleury算法。在常规的DFS顶点遍历过程中,图中,只要完成所有的顶点的遍历即可,处理的对象为顶点,那么对于欧拉路径而言就会造成一个问题,backedge或者forwardedge由于共享的顶点已经标记为访问,那么这些边就会自动跳过,从而无法完成所有边的访问。
Hierholzer的通过转换操作对象,对边的访问进行标记,按照边是否访问,来控制DFS的操作。
Fleury算法核心思想是,每次访问边的邻接顶点之前,需要确认此边不是bridge,如果不是bridge类型的边,就继续访问,如果是那么就寻找其它合理的边再进行访问。
4. 接下来要讨论的问题是,什么样的连通图具有欧拉路径 或欧拉回路呢?我们需要分有向图和无向图两类情况进行讨论。

  • 对于有向连通图,如果图中所有的顶点的出度和入度相等,那么此有向连通图就为欧拉回路;如果此有向连通图中,有一个顶点的出度比入度多1,另外一个顶点的入度比出度多1,且除了这两个顶点之外的其它顶点,其出度和入度相等。除此之外, 此有向连通图中不包含欧拉路径或欧拉回路。
  • 对于无向连通图,如果所有顶点的度均为偶数,那么此无向连通图中包含欧拉回路,如果仅有两个顶点的度为奇书,那么此无向连通图中包含欧拉路径。除此之外,其它情况下,此无向连通图中不好含欧拉路径或欧拉回路。


5. 总结
通过对欧拉路径和欧拉回路的梳理,进一步了解二者的区别,同时也可以通过对顶点的度的判断,确认连通图中是否包含欧拉路径或欧拉回路。后续的博文中,我们将对两类经典算法进行分析和Coding.
谢谢
以上

参考文档:
1. 科普中国-欧拉回路
2. Existence of Eulerian Paths and Circuits by William Fiset

欧拉路径和欧拉回路(Euler Path and Euler Circuit)解释相关推荐

  1. 算法提高课——3.10 欧拉路径和欧拉回路

    欧拉路径和欧拉回路 哥尼斯堡七桥问题 以下内容摘自<信息学奥赛一本通·提高篇>. 欧拉回路问题是图论中最古老的问题之一.它诞生于18世纪的欧洲古城哥尼斯堡,普瑞格尔河流经这座城市,人们在两 ...

  2. mysql 欧拉_欧拉路径和欧拉回路

    欧拉路径和欧拉回路 欧拉路径:从某结点出发一笔画成所经过的路线叫做欧拉路径. 欧拉回路:在欧拉路径的基础上又回到起点. a.凡是由偶点组成的连通图,一定可以一笔画成.画时可以把任一偶点为起点,最后一定 ...

  3. HEU euler path

    欧拉回路 #include <cstdio> #include <cstring> #include <iostream> using namespace std; ...

  4. 【图论专题】欧拉路径和欧拉回路

    A.AcWing 1123. 铲雪车(欧拉路的简单思想) 我们将这个图看成有向图,对于每输入一组数据加两条有向边,需要每条边都至少走一遍 我们先回想一下存在有向图的欧拉路径的充分必要条件 所有点的入度 ...

  5. 混合图的欧拉路径和欧拉回路判断

    混合图(既有有向边又有无向边的图)中欧拉环.欧拉路径的判定需要借助网络流!(1)欧拉环的判定: 一开始当然是判断原图的基图是否连通,若不连通则一定不存在欧拉环或欧拉路径(不考虑度数为0的点).其实,难 ...

  6. 欧拉路径、欧拉回路与欧拉图(一笔画)

    欧拉欧拉欧拉欧拉欧拉~~~~~ 定义 由于不可知的原因,我在考场上又双叒叕挂了一个曾经学过的知识点.感觉凡是没整理过的知识点,基本都忘干净了呀!(?) 欧拉路径(欧拉通路):通过图中所有边的简单路.( ...

  7. 华为服务器euler系统,华为euler服务器

    弹性云服务器 ECS 弹性云服务器(Elastic Cloud Server)是一种可随时自助获取.可弹性伸缩的云服务器,帮助用户打造可靠.安全.灵活.高效的应用环境,确保服务持久稳定运行,提升运维效 ...

  8. Django2.x中url路由的path()与re_path()参数解释(亲测)

    在新版本Django2.x中,url的路由表示用path和re_path代替,模块的导入由django1.x版本的from django.conf.urls import url,include变成现 ...

  9. 阿里开源Euler:国内首个工业级图表征学习框架

    先奉上开源地址:https://github.com/alibaba/euler Euler开源:用图表征学习解决深度学习瓶颈 Euler是阿里巴巴旗下数字营销平台阿里妈妈自研的大规模分布式图表征学习 ...

最新文章

  1. 为什么你不应该接受有 race 的代码
  2. HTTP/3 原理实战
  3. 负载均衡工具 haproxy 单机安装部署完整流程
  4. Java使用String对象的split()方法分割字符串的小坑
  5. docker 远程访问_Docker 与其守护进程
  6. 《南明史》txt版本
  7. 面试题 MySQL的慢查询、如何监控、如何排查?
  8. 初试超轻量级actor框架——akka
  9. python DEA: by-product NDDF DEA模型
  10. 微信支付计算机,微信电脑版怎么支付?怎么开通微信支付?
  11. 姜健:VP9可适性视频编码(SVC)新特性
  12. c#实现麻将胡牌判定-----对子法
  13. 以下7种硬件测试的种类,不知道的赶紧收藏了!
  14. 军用产品环境可靠性试验-环境适应性检测
  15. 【一江水 一家人】 盘龙区打造铸牢中华民族共同体意识盘龙江示范带
  16. 计算机密码设置要求包括哪些内容,电脑开机密码设置方法有哪些
  17. 华山论剑闲谈iOS中闪光灯的使用
  18. 拼多多员工匿名发帖被辞退,拼多多回应
  19. 夙愿:对数函数与指数函数的交点问题
  20. 标题:关于high-speed Charting Control配置过程中一些问题(ChartCtrl新手向)vs2019+win10-2020.12.11

热门文章

  1. 路由 路由分类(IGP与EGP、直连、静态、动态)与路由表介绍
  2. 使用Ranch搭建自己的TCP连接池
  3. Excel列上不等合并单元格一键输入连续序号操作
  4. js 对象和对象赋值 去除关联性。
  5. vscode open in browser打不开
  6. web网页设计期末课程大作业:企业网站设计——大气的装饰装修一体化公司网站模板(14页) HTML+CSS+JavaScript
  7. Mozilla研究—mozilla中的设计亮点
  8. NGUI之实现连连看小游戏
  9. 全球及中国婴儿痤疮药行业专项调研及竞争策略分析报告2021-2027年版
  10. 辞旧迎新:元旦,春节放假通知