【概述】

图的遍历问题是从图中某一顶点出发,系统地访问图中所有顶点,使每个顶点恰好被访问一次。

目前,图的遍历问题分为四类:

  1. 欧拉通路与欧拉回路问题:遍历完所有的边而不能有重复,即一笔画问题
  2. 中国邮递员问题:遍历完所有的边而可以有重复
  3. 哈密尔顿问题:遍历完所有的顶点而没有重复
  4. 旅行推销员问题:遍历完所有的顶点而可以重复

目前,欧拉回路问题与中国邮递员问题已有了完美的解决方法,而哈密尔顿问题与旅行推销员问题只得到了部分解决。

技巧:为避免重复访问某个顶点,通常设置一个标志数组 vis[N],未访问时值为 false,访问后改为 true。

【相关定理及实现】

  1. 欧拉通路与欧拉回路问题:点击这里
  2. 哈密顿问题:点击这里

【例题】

1.欧拉路的判定

  1. 欧拉回路(HDU-1878)(无向图的欧拉回路):点击这里
  2. Door Man(POJ-1300)(无向图的欧拉回路或欧拉通路):点击这里
  3. Play on Words(POJ-1386)(有向图的欧拉回路或欧拉通路):点击这里
  4. Ant Trip(HDU-3018)(无向图的欧拉回路+连通性):点击这里

2.欧拉路的输出

  1. 一笔画问题(信息学奥赛一本通T-1341):点击这里
  2. 骑马修栅栏(信息学奥赛一本通T-1375):点击这里
  3. 铲雪车(信息学奥赛一本通T-1374)(欧拉回路思想):点击这里
  4. Watchcow(POJ-2230)(输出欧拉回路+链表存储):点击这里
  5. John's trip(POJ-1041)(输出欧拉回路+字典序):点击这里

3.哈密顿回路

  1. Children's Dining(POJ-2438)(构造无向图的哈密顿回路):点击这里

图论 —— 图的遍历相关推荐

  1. 图论 —— 图的遍历 —— 哈密顿问题

    [基本概念] 哈密尔顿通路:经过图中每个结点且仅经过一次的通路. 哈密尔顿回路:经过图中每个结点且仅经过一次的回路. 哈密尔顿图:存在哈密尔顿回路的图. 竞赛图:每对顶点之间都有一条边相连的有向图,n ...

  2. 图论 —— 图的遍历 —— 欧拉通路与欧拉回路问题

    [基本概念] 欧拉通路:通过图中所有边一次且仅一次行遍所有顶点的通路 欧拉回路:通过图中所有边一次且仅一次行遍所有顶点的回路 欧拉图:具有欧拉回路的图 半欧拉图:具有欧拉通路而无欧拉回路的图 奇度点: ...

  3. 图论——图的遍历(洛谷 P3916)

    题目选自洛谷P3916 反向建边 + dfs 按题目来每次考虑每个点可以到达点编号最大的点,不如考虑较大的点可以反向到达哪些点 循环从N到1,则每个点i能访问到的结点的A值都是i 每个点访问一次,这个 ...

  4. 图论算法——图的遍历

    图论算法也是非常基础且重要的算法(ps:好像没有不重要的......) 图的基本应用--图的遍历,从具体的题目着手,学习图的遍历方式及代码形式. 我们先来看一下题目,然后再具体分析图的遍历方式. 题目 ...

  5. c++ 遍历所有点且距离最短_L3图论第08课 图的遍历

    L3-图论-第08课 图的遍历 图的遍历是指,从给定图中任意指定的顶点(称为初始点)出发,按照某种搜索方法沿着图的边访问图中的所有顶点,使每个顶点仅被访问一次,这个过程称为图的遍历.遍历过程中得到的顶 ...

  6. 牛客网 【每日一题】5月21日题目 图的遍历

    链接: 文章目录 题目描述 题解 代码: 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32768K,其他语言65536K 64bit IO Format: %lld 题目描述 小s ...

  7. 图的遍历——深度优先搜索+广度优先搜索

    一:图的遍历--深度优先搜索 在本文其他内容中只是大体概括了主要的图论内容,更加详细的代码实现及算法分析在此给出. 深度优先搜索(DFS)类似树的先序遍历. 假设初始状态是图中所有顶点未曾被访问,则深 ...

  8. Java数据结构与算法:无向图,有向图,带权图,图的遍历,最小生成树

    文章目录 无向图 有向图 带权图 图的遍历 广度优先遍历 深度优先遍历 最小生成树 无向图 前面了解到树是有单一根结点的非线性结构,图(graph)也是一种非线性结构,其中的结点可以与许多其他的结点相 ...

  9. Python算法学习[5]—图、遍历、连通、最短路径代码演练

    图.遍历.连通.最短路径&代码演练 图是计算机科学中的一种数据结构,它由节点(顶点)和边组成.在实际应用中,图经常被用来表示复杂系统之间的关系,如社交网络.交通网络等.本文将介绍图的基本概念和 ...

最新文章

  1. 2020年人工神经网络第二次作业-参考答案第七题
  2. python输入hello*3_Python3基础(一) Hello World
  3. JQuery 判断checkbox是否选中,checkbox全选,获取checkbox选中值
  4. 多线程:volatile
  5. 【网络编程】之六、选择select
  6. Asp.net Core Jenkins Docker 实现一键化部署
  7. centos系统在Visual Studio Code 中使用超级管理员权限保存文件
  8. 翻译:group_concat()函数(已提交到MariaDB官方手册)
  9. 洛谷 P3119 [USACO15JAN]草鉴定Grass Cownoisseur 解题报告
  10. 离线版的百度地图 js
  11. pandas 空值填充
  12. TBSchedule调度平台疑难解答
  13. Java带宽限速器、Springboot限速器
  14. fastlane php,fastlane 自动化打包不同的target,以及手动传版本号参数
  15. 1500w播放下还藏着什么热点?B站2个未来趋势你不得错过
  16. 【离散数学】第二章 笔记(完)
  17. 动态规划石子排序java_动态规划之石子归并
  18. 最常见的几种手机快充方式和原理
  19. 如何用matlab中syms建立符号方程,用matlab求解符号方程及符号方程组
  20. 移动硬盘中装linux,移动硬盘中安装Linux(CentOS)

热门文章

  1. 详解数据科学与数理统计的基本概念
  2. 黄光裕正式获释,公开发表讲话!
  3. GitHub 发布中文版帮助文档,这翻译也是醉了~
  4. 微信第一个“小程序”亮相:不是APP胜似APP!
  5. 利用shell命令操作Memcached
  6. JSF 源代码赏析之FacesServlet
  7. UML类图操作(二)
  8. Linux环境Kafka安装配置
  9. APP中的第三方“支付”功能该如何测试
  10. win7禁用Adnimistrator账号登录