C#,图论与图算法,有向图(Directed Graph)的环(Cycle)的普通判断算法与源代码

1 检查该图是否包含循环

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

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


对于断开连接的图,获取DFS林作为输出。若要检测循环,请通过检查后边缘来检查各个树中的循环。

要检测后缘,请跟踪DFS遍历函数递归堆栈中当前的顶点。如果到达递归堆栈中已经存在的顶点,则树中存在一个循环。将当前顶点连接到递归堆栈中顶点的边是后边。使用recStack[]数组跟踪递归堆栈中的顶点。

2 算法

  1. 使用给定数量的边和顶点创建图形。
  2. 创建一个递归函数,用于初始化当前索引或顶点、已访问和递归堆栈。
  3. 将当前节点标记为已访问,并在递归堆栈中标记索引。
  4. 查找所有未访问且与当前节点相邻的顶点。递归调用这些顶点的函数,如果递归函数返回true,则返回true。
  5. 如果相邻顶点已在递归堆栈中标记,则返回t

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

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

相关文章

VR全景展示带来的全新体验,有哪些优势?

VR全景展示技术作为一种新兴的数字展示方式,能够让观众身临其境,提升沉浸式效果和观众体验感,不论是在视觉感官上,还是在使用产品的回馈上,VR全景所带来的全新体验都是与众不同的。 VR全景展示有哪些优势? …

uinapp开发-PHP语言-后端安装说明-适用于圈子-陪玩-交友-校园-团购-外卖-分销等多系统-APP小程序H5多端皆有!

后端安装说明 全新安装客户,按此安装调试步骤,请按顺序: ** 后台安装步骤及说明 ** 1、在服务器里安装宝塔。下载www.bt.cn。 宝塔安装完毕后,安装环境,Nginx或者Apache 请选择PHP7.3 数据库mysql5.6。 NGINX 1.22.1轻…

《算法王晓东》多处最优服务次序问题

多处最优服务次序问题 题目描述 设有n个顾客同时等待一项服务。顾客i需要的服务时间为ti, 1≤i≤n。共有s处可以提供此项服务。应如何安排n个顾客的服务次序才能使平均等待时间达到最小? 平均等待时间是n个顾客等待服务时间的总和除以n。 算法设计:对于给定的n个顾…

多区域ISIS路由计算

多区域ISIS路由计算: 1、骨干区域是如何访问非骨干区域?(R4如何学习到200.200/32的路由?) 1.1 默认情况下,L1/2级别路由器会将L1级别LSDB中的叶子信息,作为自己L2级别实节点的叶子信息添加到L2的…

鸿蒙Harmony应用开发—ArkTS-显式动画

提供全局animateTo显式动画接口来指定由于闭包代码导致的状态变化插入过渡动效。同属性动画,布局类改变宽高的动画,内容都是直接到终点状态,例如文字、canvas的内容、linearGradient等,如果要内容跟随宽高变化,可以使用…

代码随想录算法训练营第day25|216.组合总和III、 17.电话号码的字母组合

216.组合总和III 力扣题目链接 (opens new window) 找出所有相加之和为 n 的 k 个数的组合。组合中只允许含有 1 - 9 的正整数,并且每种组合中不存在重复的数字。 说明: 所有数字都是正整数。解集不能包含重复的组合。 示例 1: 输入: k 3, n 7 输…

【LabVIEW FPGA入门】局部变量和全局变量

局部变量 无法访问某前面板对象或需要在程序框图节点之间传递数据时,可创建前面板对象的局部变量。创建局部变量后,局部变量仅仅出现在程序框图上,而不在前面板上。 局部变量可对前面板上的输入控件或显示件进行数据读写。写入局部变量相当于…

华为手机如何录屏?两个方法助你轻松录制

随着智能手机的普及,越来越多的用户开始使用手机来录制屏幕,以便分享游戏过程、教程演示等。其中,华为手机以其卓越的性能和丰富的功能受到了广大用户的喜爱,可是很多用户不知道华为手机如何录屏,本文将详细介绍两种华…

lv17 安防监控项目实战 3

代码目录 框架 our_storage 编译最终生成的目标文件obj 编译生成中间的.o文件 data_global.c 公共资源定义(使用在外extern即可)定义了锁定义了条件变量消息队列id、共享内存id、信号量id及key值发送短信、接收短信的号码向消息队列发送消息的函数&am…

数字人解决方案— SadTalker语音驱动图像生成视频原理与源码部署

简介 随着数字人物概念的兴起和生成技术的不断发展,将照片中的人物与音频输入进行同步变得越来越容易。然而,目前仍存在一些问题,比如头部运动不自然、面部表情扭曲以及图片和视频中人物面部的差异等。为了解决这些问题,来自西安…

Java面试题(Spring篇)

💟💟前言 ​ 友友们大家好,我是你们的小王同学😗😗 今天给大家打来的是 Java面试题(Spring篇) 希望能给大家带来有用的知识 觉得小王写的不错的话麻烦动动小手 点赞👍 收藏⭐ 评论📄 小王的主页…

2024 年广西职业院校技能大赛高职组《云计算应用》赛项赛题第 1 套

#需要资源或有问题的,可私博主!!! #需要资源或有问题的,可私博主!!! #需要资源或有问题的,可私博主!!! 某企业根据自身业务需求&#…

Nettty(1) - 异步和事件驱动

1 Java网络编程 早期的Java API只支持由本地系统套接字提供的所谓的阻塞函数,下面将使用这些函数编写服务端的代码。 1.1 服务端 package com.socket.test;import lombok.extern.slf4j.Slf4j;import java.io.BufferedReader; import java.io.IOException; import…

C#,图论与图算法,图最短路径的迪杰斯特拉(Dijkstra)算法与源代码

1 图的最短路径 给定一个图和图中的源顶点,查找从源到给定图中所有顶点的最短路径。 Dijkstra的算法与Prim的最小生成树算法非常相似。像Prim的MST一样,我们生成一个以给定源为根的SPT(最短路径树)。我们维护两个集合,一个集合包含最短路径树中包含的顶点,另一个集合包…

实验2 E-R图

实 验 名 称 实验2 E-R图 实验目的 (1)通过绘制系统E-R图,熟练掌握系统E-R图的绘制,以及写出E-R图的关系模式。 实验内容 绘用Microsoft Visio绘制出某防疫管理系统的E-R图并写出关系模式。 在抗击新冠肺炎疫情中&#xff…

海外媒体发稿:如何通过海外媒体推广发稿平台提升知名度-华媒舍

在数字时代,传统媒体受到了前所未有的冲击。海外媒体推广发稿平台成为了一种有效的方式,可以帮助个人、公司或组织提升在全球范围内的知名度。本文将介绍如何通过海外媒体推广发稿平台来实现这一目标,并给出一些建议和注意事项。 一、海外媒体…

使用 GTSAM 进行曲线拟合的示例

GTSAM介绍 GTSAM(通用因子图优化库)是一种用于状态估计和传感器数据融合的开源C++库。它提供了强大的工具,用于在机器人和自主系统领域进行感知、决策和控制。 功能和特点 状态估计与优化: GTSAM 提供了灵活且高效的状态估计框架,能够处理从传感器获取的数据,并…

支持普通表单+收费在线支付活动 自定义表单系统源码 带完整的安装代码包以及搭建教程

在当前信息化社会中,表单作为数据收集和信息交互的重要工具,被广泛应用于各类网站和平台。然而,市面上的表单系统大多功能单一,无法满足用户多样化的需求。特别是对于一些需要实现在线支付功能的收费活动,更是缺乏一套…

固定资产管理系统|基于JSP技术+ Mysql+Java+ B/S结构的固定资产管理系统设计与实现(可运行源码+数据库+设计文档)

推荐阅读100套最新项目 最新ssmjava项目文档视频演示可运行源码分享 最新jspjava项目文档视频演示可运行源码分享 最新Spring Boot项目文档视频演示可运行源码分享 2024年56套包含java,ssm,springboot的平台设计与实现项目系统开发资源(可…

flask+ flask_socketio HTTP/1.1“ 400 公网IP 问题解决方案

很经典的一个跨域问题 在服务端改成socketio SocketIO(app, cors_allowed_origins"*")就可以了