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.rhkb.cn/news/279492.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Huggingface 笔记:大模型(Gemma2B,Gemma 7B)部署+基本使用

1 部署 1.1 申请权限 在huggingface的gemma界面,点击“term”以申请gemma访问权限 https://huggingface.co/google/gemma-7b 然后接受条款 1.2 添加hugging对应的token 如果直接用gemma提供的代码,会出现如下问题: from transformers i…

Docker 从0安装 nacos集群

前提条件 Docker支持一下的CentOs版本 Centos7(64-bit),系统内核版本为 3.10 以上Centos6.5(64-bit) 或者更高版本,系统内核版本为 2.6.32-431 或者更高版本 安装步骤 使用 yum 安装(CentOS 7下) 通过 uname -r 命令查看你当…

室友打团太吵?一条命令断掉它的WiFi

「作者主页」:士别三日wyx 「作者简介」:CSDN top100、阿里云博客专家、华为云享专家、网络安全领域优质创作者 「推荐专栏」:更多干货,请关注专栏《网络安全自学教程》 ARP欺骗原理 1、arpspoof实现ARP欺骗1.1、主机探测1.2、欺骗…

QT 驾校系统界面布局编写

MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow) {ui->setupUi(this);this->resize(ui->label_img->width(),ui->label_img->height());//图片自适应窗口大小ui->label_img->setScaledContents(true);//图片置…

(一)Linux+Windows下安装ffmpeg

一丶前言 FFmpeg是一个开源的音视频处理工具集,由多个命令行工具组成。它可以在跨平台的环境中处理、转换、编辑和流媒体处理音视频文件。 FFmpeg支持多种常见的音视频格式和编解码器,可以对音视频文件进行编码、解码、转码、剪辑、合并等操作。它具有广…

【Auth Proxy】为你的 Web 服务上把锁

Auth Proxy 一个极简的用于 Web 服务鉴权的反向代理服务 极其简约的 UI对你的真实服务无任何侵入性支持容器部署,Docker Image 优化到不能再小(不到 9MB)GitHub:https://github.com/wengchaoxi/auth-proxy 效果 我在 http://lo…

幻兽帕鲁游戏搭建(docker)

系列文章目录 第一章: 幻兽帕陆游戏搭建 文章目录 系列文章目录前言一、镜像安装1.创建游戏目录2.拉取镜像3.下载配置文件4.启动游戏 二、自定义配置总结 前言 这段时间一直在写论文还有找工作,也没学啥新技术,所以博客也很长时间没写了&am…

操作系统核心知识点大梳理

计算机结构 现代计算机模型是基于-冯诺依曼计算机模型 计算机在运行时,先从内存中取出第一条指令,通过控制器的译码,按指令的要求,从存储器中取出数据进行指定的运算和逻辑操作等加工,然后再按地址把结果送到内存中去…

Go语言学习14-常见任务

Go语言学习14-常见任务 内置的 JSON 解析 利用反射实现, 通过 FieldTag 来标识对应的 json 值 type BasicInfo struct {Name string json:"name"Age int json:"age" } type JobInfo struct {Skills []string json:"skills" } type Employ…

微软AI系列 C#中实现相似度计算涉及到加载图像、使用预训练的模型提取特征以及计算相似度

在C#中实现相似度计算涉及到加载图像、使用预训练的模型提取特征以及计算相似度。你可以使用.NET中的深度学习库如TensorFlow.NET来加载预训练模型,提取特征,并进行相似度计算。 以下是一个使用TensorFlow.NET的示例: using System; using …

云原生:重塑未来应用的基石

随着数字化时代的不断深入,云原生已经成为了IT领域的热门话题。它代表着一种全新的软件开发和部署范式,旨在充分利用云计算的优势,并为企业带来更大的灵活性、可靠性和效率。今天我们就来聊一聊这个热门的话题:云原生~ &#x1f4…

5.shell中的函数

目录 概述实践shell结果 结束 概述 shell中函数的使用 实践 shell #!/bin/bash # 函数、无参无返回值,调用不用括号xyz(){echo "hello this is fun" } xyz# 如何向定义的函数传参? 通过位置参数 xyz_with_params(){echo "shell传参个数为:$#&qu…

ubuntu20.04_PX4_1.13

说在前面:(最好找一个干净的Ubuntu系统)如果配置环境的过程中出现很多编译的错误或者依赖冲突,还是建议新建一个虚拟机,或者重装Ubuntu系统,这样会避免很多麻烦💐 , 安装PX4 1.13.2 …

web前端之多种方式实现switch滑块功能、动态设置css变量、after伪元素、选择器、has伪类

MENU 效果图htmlcsshtmlcssJS 效果图 htmlcss html <div class"s"><input type"checkbox" id"si" class"si"><label for"si" class"sl"></label> </div>style * {margin: 0;pad…

百度交易中台之系统对账篇

作者 | 天空 导读 introduction 百度交易中台作为集团移动生态战略的基础设施&#xff0c;面向收银交易与清分结算场景&#xff0c;赋能业务、提供高效交易生态搭建。目前支持百度体系内多个产品线&#xff0c;主要包括&#xff1a;度小店、小程序、地图打车、文心一言等。本文…

HighTec_TC4 编译器移植 Aurix ADS

ADS 是英飞凌推出的针对 AURIX 芯片的开发平台&#xff0c;该开发环境基于业内流行的 Eclipse 打造而成。 HighTec 作为英飞凌的全球重要合作伙伴和 PDH&#xff0c;作为专业的编译器供应商和嵌入式产品方案提供商&#xff0c;HighTec 早已经为英飞凌最新一代 AURIX TC4XX 芯片…

windows 多网卡情况dns解析超时问题的排查

最近遇到一个问题 多网卡&#xff0c;多网络环境下&#xff0c;dns解析总是超时。 排查之后发现是dns配置的问题&#xff0c;一个有线网络配置的内网dns&#xff0c;一个无线网络配置的公网dns 访问公网时莫名的时不时出现超时现象 初步排查是dns解析的耗时太长&#xff0c;…

AI助手 - 月之暗面 Kimi.ai

前言 这是 AI工具专栏 下的第四篇&#xff0c;这一篇所介绍的AI&#xff0c;也许是截至今天&#xff08;204-03-19&#xff09;国内可访问的实用性最强的一款。 今年年初&#xff0c;一直看到有人推荐 Kimi&#xff0c;不过面对雨后春笋般的各类品质的AI&#xff0c;说实话也有…

添加与搜索单词 - 数据结构设计

题目链接 添加与搜索单词 - 数据结构设计 题目描述 注意点 addWord 中的 word 由小写英文字母组成search 中的 word 由 ‘.’ 或小写英文字母组成1 < word.length < 25 解答思路 为了加快查询速度&#xff0c;可以使用字典树存储单词&#xff0c;基本结构是&#xf…

STM32通信协议

STM32通信协议 STM32通信协议 STM32通信协议一、通信相关概念二、通信协议引脚作用三、通信方式四、采样方式五、电平信号六、通信对象 一、通信相关概念 通信接口 通信的目的&#xff1a;将一个设备的数据传送到另一个设备&#xff0c;扩展硬件系统 通信协议&#xff1a;制定…