C#,图论与图算法,双连通图(Biconnected Components of Graph)的算法与源代码

news/2024/7/20 20:17:27 标签: 深度优先, 图论, 算法

1 双连通图(Biconnected Components of Graph)

如果任意两个顶点之间有两条顶点不相交的路径,则无向图称为双连通图。在双连通图中,有一个通过任意两个顶点的简单循环。

按照约定,由边连接的两个节点构成双连通图,但这并不验证上述属性。对于具有两个以上顶点的图,必须存在上述属性才能进行双连接。或者换句话说:
如果满足以下条件,则称图形为双连通:
1) 它是连接的,即可以通过一条简单的路径从其他每个顶点到达每个顶点。
2) 即使移除任何顶点,图形仍保持连接。

如果一个连通图是连通的并且没有任何连接点,那么它就是双连通的。我们主要需要检查图表中的两件事。
1) 图形已连接。
2) 图表中没有连接点。
我们从任何顶点开始进行DFS遍历。在DFS遍历中,我们检查是否有任何连接点。如果我们没有找到任何连接点,那么该图是双连接的。最后,我们需要检查是否所有顶点都可以在DFS中访问。如果所有顶点都不可到达,则图形甚至没有连接。

2 源程序

using System;
using System.Collections.Generic;

namespace Legalsoft.Truffer.Algorithm
{
    public partial class Graph
    {
        private void Biconnected_Components_Utility(int u, int[] disc, int[] low,ref List<Edge> st, int[] parent)
        {
            disc[u] = low[u] = ++time;
            int children = 0;

            foreach (int it in Adjacency[u])
            {
                int v = it;

                if (disc[v] == -1)
                {
                    children++;
                    parent[v] = u;

                    st.Add(new Edge(u, v));
                    Biconnected_Components_Utility(v, disc, low,ref st, pa


http://www.niftyadmin.cn/n/5431958.html

相关文章

如何解决由触发器导致 MySQL 内存溢出?

由触发器导致得 OOM 案例分析过程和解决方式。 作者&#xff1a;龚唐杰&#xff0c;爱可生 DBA 团队成员&#xff0c;主要负责 MySQL 技术支持&#xff0c;擅长 MySQL、PG、国产数据库。 爱可生开源社区出品&#xff0c;原创内容未经授权不得随意使用&#xff0c;转载请联系小编…

如何用树莓派实现视频的warping

在树莓派上实现视频的warping&#xff08;扭曲&#xff09;效果&#xff0c;你通常会用到图像处理库&#xff0c;比如OpenCV。下面是一个基本的步骤指南&#xff0c;帮助你使用树莓派和OpenCV来扭曲视频&#xff1a; 1. 安装必要的软件和库 首先&#xff0c;确保你的树莓派上…

P8753 [蓝桥杯 2021 省 AB2] 小平方 Python

[蓝桥杯 2021 省 AB2] 小平方 题目描述 小蓝发现&#xff0c;对于一个正整数 n n n 和一个小于 n n n 的正整数 v v v&#xff0c;将 v v v 平方后对 n n n 取余可能小于 n n n 的一半&#xff0c;也可能大于等于 n n n 的一半。 请问&#xff0c;在 1 1 1 到 n −…

【SpringCloud微服务实战07】Sentinel 服务保护

Sentinel 是阿里巴巴开源的一款微服务流量控制组件。主要作用: 流量控制:避免因瞬间高并发流量而导致服务故障流。超时处理、线程隔离、降级熔断:避免因服务故障引起的雪崩问题。一、Sentinel 安装 1、安装Sentinel控制台,下载jar包并启动:Releases alibaba/Sentinel G…

Servlet使用

文章目录 简介一、快速入门二、Servlet 执行流程三、Servlet 生命周期四、Servlet 方法介绍五、Servlet 体系结构六、Servlet urlPattern配置七、XML 配置方式编写 Servlet 简介 一、快速入门 <dependencies><dependency><groupId>javax.servlet</groupId…

1Panel应用推荐:Nginx Proxy Manager

1Panel&#xff08;github.com/1Panel-dev/1Panel&#xff09;是一款现代化、开源的Linux服务器运维管理面板&#xff0c;它致力于通过开源的方式&#xff0c;帮助用户简化建站与运维管理流程。为了方便广大用户快捷安装部署相关软件应用&#xff0c;1Panel特别开通应用商店&am…

第十四次CCF-CSP(第二题 买菜、第四题 再卖菜)

第十四次CCF-CSP 第二题 买菜 原题链接&#xff1a;3263. 买菜 - AcWing题库 思路分析 简单来说&#xff0c;就是给出两组区间的集合A,B 求出两集合中相交区间的部分的长度&#xff0c;注意若区间 [s,t] 是相交的&#xff0c;则长度为 t-s 。 思路一 因为数据量比较小&am…

产品推荐 - 基于Xilinx Virtex UltraScale+的XUP-P3R FPGA加速卡

1、产品概述 XUP-P3R还集成了一个板卡管理控制器&#xff08;BMC&#xff09;&#xff0c;用于先进的系统监控&#xff0c;这大大简化了平台的集成和管理。所有这些特点结合起来&#xff0c;使XUP-P3R成为广泛的数据中心应用的理想选择&#xff0c;包括网络处理和安全、加速、存…