带你读《图解算法小抄》二十五、图(12)

简介: 带你读《图解算法小抄》二十五、图(12)

带你读《图解算法小抄》二十五、图(11)https://developer.aliyun.com/article/1347761?groupCode=tech_library


15.检测图中的循环


在图论中,循环是指一条由边和顶点组成的路径,其中一个顶点可以从自身到达。循环有几种不同的类型,主要有闭合路径和简单循环。

1定义

闭合路径由一系列从同一顶点开始和结束的顶点组成,序列中的任意两个连续顶点在图中相邻。

 

在有向图中,每条边在路径中的遍历必须与其方向一致:边必须从序列中较早的顶点指向序列中较后的顶点。起始顶点的选择并不重要:从不同的起始顶点遍历相同的循环边序列会产生相同的闭合路径。

 

简单循环可以定义为一条闭合路径,不允许重复顶点和边,除了起始和结束顶点的重复,或者可以定义为该路径中的边的集合。在有向图中,这两种定义是等价的,简单循环也被称为有向循环:在循环中的顶点和边的循环序列完全由其使用的边的集合确定。

 

在无向图中,循环的边集可以按照两个方向之一遍历,为每个无向循环提供两种可能的有向循环。电路可以是允许重复顶点但不允许重复边的闭合路径;然而,它也可以是简单循环,因此在使用时建议明确定义。

 

2示例

image.png

循环

带有颜色边的图,用于说明路径 H-A-B(绿色),带有重复顶点的闭合路径或循环路径 B-D-E-F-D-C-B(蓝色)以及没有重复边或顶点的循环 H-D-G-H(红色)

无向图中的循环

image.png

 

 

带你读《图解算法小抄》二十五、图(13)https://developer.aliyun.com/article/1347759?groupCode=tech_library

相关文章
|
7月前
|
存储 人工智能 算法
图与树的遍历:探索广度优先、深度优先及其他遍历算法的原理与实现
图与树的遍历:探索广度优先、深度优先及其他遍历算法的原理与实现
419 0
|
6月前
|
存储 算法 Java
Java中,树与图的算法涉及二叉树的前序、中序、后序遍历以及DFS和BFS搜索。
【6月更文挑战第21天】Java中,树与图的算法涉及二叉树的前序、中序、后序遍历以及DFS和BFS搜索。二叉树遍历通过访问根、左、右子节点实现。DFS采用递归遍历图的节点,而BFS利用队列按层次访问。以下是简化的代码片段:[Java代码略]
48 4
|
5月前
|
存储 算法 Python
“解锁Python高级数据结构新姿势:图的表示与遍历,让你的算法思维跃升新高度
【7月更文挑战第13天】Python中的图数据结构用于表示复杂关系,通过节点和边连接。常见的表示方法是邻接矩阵(适合稠密图)和邻接表(适合稀疏图)。图遍历包括DFS(深度优先搜索)和BFS(广度优先搜索):DFS深入探索分支,BFS逐层访问邻居。掌握这些技巧对优化算法和解决实际问题至关重要。**
45 1
|
5月前
|
数据采集 存储 算法
「AIGC算法」图搜索算法详解
本文探讨了图搜索算法,包括遍历和最短路径搜索。DFS和BFS是遍历算法,前者使用栈深入搜索,后者用队列逐层遍历。Dijkstra、Bellman-Ford、A*、Floyd-Warshall和Johnson算法则解决最短路径问题。文中还给出了DFS的Python实现示例。这些算法在路径规划、网络分析等领域有重要应用。
99 0
|
7月前
|
存储 算法 C++
c++算法学习笔记 (8) 树与图部分
c++算法学习笔记 (8) 树与图部分
|
7月前
|
算法 数据可视化 大数据
圆堆图circle packing算法可视化分析电商平台网红零食销量采集数据
圆堆图circle packing算法可视化分析电商平台网红零食销量采集数据
|
6月前
|
算法 计算机视觉
图像处理之基于图的广度优先搜索组件标记算法
图像处理之基于图的广度优先搜索组件标记算法
33 0
|
6月前
|
存储 算法
数据结构学习记录——图应用实例-六度空间(题目描述、算法思路、伪代码及解读、图解)
数据结构学习记录——图应用实例-六度空间(题目描述、算法思路、伪代码及解读、图解)
61 0
|
7月前
|
算法 数据可视化
圆填充( CIRCLE PACKING)算法圆堆图圆形空间填充算法可视化
圆填充( CIRCLE PACKING)算法圆堆图圆形空间填充算法可视化
|
7月前
|
存储 算法
图的深度优先算法
图的深度优先算法
42 0