C#,图论与图算法,有向图(Graph)之环(Cycle)判断的颜色算法与源代码

检查该图是否包含循环

给定一个有向图,检查该图是否包含循环。如果给定的图形至少包含一个循环,则函数应返回true,否则返回false。

方法:深度优先遍历可用于检测图中的循环。连接图的DFS生成树。只有当图中存在后缘时,图中才存在循环。后边是从节点到自身(自循环)或DFS生成的树中其祖先之一的边。在下图中,有3条后缘,用十字符号标记。可以观察到,这3条后缘表示图中存在3个循环。

对于断开连接的图,我们将DFS林作为输出。为了检测循环,我们可以通过检查后边缘来检查各个树中的循环。

图像来源:http://www.cs.yale.edu/homes/aspnes/pinewiki/DepthFirstSearch.html

在上一篇文章中,我们讨论了一个解决方案,该解决方案将访问的顶点存储在一个单独的数组中,该数组存储当前递归调用堆栈的顶点。

在这篇文章中,讨论了一种不同的解决方案。解决方案来自CLRS手册。其思想是对给定的图进行DFS,在进行遍历时,将以下三种颜色中的一种指定给每个顶点。

白色:尚未处理顶点。最初,所有顶点都是白色的。

灰色:正在处理顶点(此顶点的DFS已启动,但尚未完成,这意味着尚未处理此顶点的所有子体(在DFS树中)(或此顶点位于函数调用堆栈中)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/470282.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【计算机视觉】Gaussian Splatting源码解读补充

本文旨在补充gwpscut创作的博文学习笔记之——3D Gaussian Splatting源码解读。 Gaussian Splatting Github地址:https://github.com/graphdeco-inria/gaussian-splatting 论文地址:https://repo-sam.inria.fr/fungraph/3d-gaussian-splatting/3d_gauss…

EPSON XV4001BC陀螺仪传感器汽车导航系统的应用

近年来为了提高汽车应用系统的可靠性,传感器融合系统被越来越多的应用到汽车领域,如汽车导航系统中的行人检测和预碰撞警告等,通过提供精准的导航信息,为驾驶员提供更安全,更稳定,更舒适的出行体验,例如在行人检测系统中,只使用低成本的红外传感器不能检测到行人的实际位置,而利…

【MySQL】工欲善其事必先利其器 --- Linux下安装MySQL(手把手保姆级)

👦个人主页:Weraphael ✍🏻作者简介:目前学习计网、mysql和算法 ✈️专栏:MySQL学习 🐋 希望大家多多支持,咱一起进步!😁 如果文章对你有帮助的话 欢迎 评论&#x1f4ac…

RTC module design

RTC 1.概要 RTC单元提供实时时钟和日历功能,包括自动闰年调整、闹钟和周期性中断支持。无论在何种工作模式下,RTC都不会关闭,即使在低功耗模式下也能正常运行。此外,RTC的输出寄存器和时钟校正寄存器不会被复位,以确…

Python Web开发记录 Day16:Django part10 文件上传(完结篇)

名人说:莫道桑榆晚,为霞尚满天。——刘禹锡(刘梦得,诗豪) 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 目录 1、文件上传2、Excel上传3、Form和ModelForm回顾…

Matlab DDPG

文章目录 1 rlSimulinkEnv1.1 说明1.2 例子1.2.1 使用工作空间Agent创建Simulink环境1.2.2 为Simulink模型创建强化学习环境1.2.3 创建Simulink多Agents环境2 创建Simulink环境和训练Agent2.1 创建环境接口2.2 创建DDPG Agent2.3 训练Agent2.4 验证已训练的Agent3 创建Simulink…

opengl日记7-ubuntu20.04开发环境opengl拓展glfw和glad环境搭建

文章目录 ubuntu中安装opengl核心环境安装glfw安装glad测试验证程序vscode的task.json配置如下note参考 ubuntu中安装opengl核心环境 可执行如下命令进行整体安装: sudo apt-get install libgl1-mesa-dev*或者单独安装 1、提供编译程序必须软件包的列表信息 sud…

【NLP笔记】Transformer

文章目录 基本架构EmbeddingEncoderself-attentionMulti-Attention残差连接LayerNorm DecoderMask&Cross Attention线性层&softmax损失函数 论文链接: Attention Is All You Need 参考文章: 【NLP】《Attention Is All You Need》的阅读笔记 一…

智慧城市的发展趋势与挑战:未来展望

随着信息技术的飞速发展,智慧城市已成为现代城市发展的重要方向。智慧城市通过集成应用先进的信息通信技术,实现城市管理、服务、运行的智能化,为城市的可持续发展注入了新的活力。然而,在智慧城市的发展过程中,也面临…

自动化改变金融科技文档生命周期

金融科技公司可能处于软件开发的最前沿,但即使是最先进的系统也必须能够支持金融服务领域采用的一系列文档密集型程序。因此,绝大多数金融科技企业都使用数字文档管理解决方案,无论是内部构建的还是由第三方供应商开发的。金融科技公司可以通…

3D开发工具HOOPS如何助力3D项目实现扩展现实技术?

在当今数字化时代,扩展现实(Augmented Reality,AR)技术的应用已经逐渐深入到各行各业,为用户带来了前所未有的沉浸式体验。而在实现这种技术的开发过程中,HOOPS技术的运用无疑是一种强大的助力。HOOPS是一种…

项目构建流程

项目构建 目录结构 引入application.properties admin模块就用9090端口 api 模块就用9091端口,其他配置先一样 # 应用服务 WEB 访问端口 server.port9090 server.servlet.context-path/api #session过期时间 60M 一个小时 server.servlet.session.timeoutPT60M #…

Pytorch DataLoader 提高模型训练时的 Volatile Gpu-Util(GPU利用率)

文章目录 1. 查看GPU显存占比和利用率2. Pytorch 提高 GPU 利用率的方法 1. 查看GPU显存占比和利用率 watch -n 0.2 nvidia-smi0.2 代表每隔 0.2 秒刷新一次 GPU 使用情况 通过调整 batch_size 可以使 Memory-Usage(GPU显存占比)尽可能高;但…

【联邦学习Fate架构讲解】

1.联邦学习的网络架构 P2P网络 网络中的每个成员建议通信 Star网络 网络中的每个成员只需要和中心的exchange交换信息 2. FATE中的架构 2.1 EggRoll分布式计算和存储 Egg Roll分布式计算和存储 存储部分 storage service计算部分 processor管理 egg manager 2.2 FateBoard联…

如何解决node-sass下载用的还是过期的淘宝源?

下载node-sass发现报错过期的证书 把npm的淘宝源换成最新的https://registry.npmmirror.com后发现还是指向了以前的淘宝源,看到一位博主说,单改npm源不够还要改下载node-sass的源,再次搜索另外一位博主提供了命令npm config ls可以使用它来查…

[GPT概念-02] — 预训练、微调和不同的用例应用

GPT: Generative Pretrained Transformer 一、说明 在之前的博客中,我们研究了生成式预训练转换器的整个概述。现在让我们看看关于预训练、微调和不同用例应用的超级重要主题。 二、预备训练 预训练是关于在没有监督或显式监督的情况下,我们从大型未标记…

WPF按钮相关

跟着官网敲的按钮相关的内容,还涉及了wpf很多其他的知识 1.创建基本按钮 <Grid><StackPanel HorizontalAlignment"Left"><Button>Button1</Button><Button>Button2</Button><Button>Button3</Button></StackPan…

开源模型应用落地-安全合规篇-模型输出合规性检测(三)

一、前言 为什么我们需要花大力气对用户输入的内容和模型生成的输出进行合规性检测,一方面是严格遵守各项法规要求,具体如下:互联网信息服务深度合成管理规定https://www.gov.cn/zhengce/zhengceku/2022-12/12/content_5731431.htm ​ 其次,受限于模型本身的一些缺陷,…

目标检测——PP-YOLO算法解读

PP-YOLO系列&#xff0c;均是基于百度自研PaddlePaddle深度学习框架发布的算法&#xff0c;2020年基于YOLOv3改进发布PP-YOLO&#xff0c;2021年发布PP-YOLOv2和移动端检测算法PP-PicoDet&#xff0c;2022年发布PP-YOLOE和PP-YOLOE-R。由于均是一个系列&#xff0c;所以放一起解…

大数据技术学习笔记(十三)—— HBase

目录 1 Hbase 概述1.1 Hbase 定义1.2 HBase 数据模型1.2.1 HBase 逻辑结构1.2.2 HBase 物理存储结构1.2.3 数据模型 1.3 HBase 基本架构 2 HBase Shell 操作2.1 基本操作2.2 namespace 操作2.3 表操作 3 HBase 原理深入3.1 RegionServer 架构3.2 HBase 写流程3.3 MemStore Flus…