C#,图论与图算法,计算图(Graph)的岛(Island)数量的算法与源程序

news/2024/7/20 21:49:10 标签: 算法, 深度优先

1 孤岛数

给定一个布尔矩阵,求孤岛数。一组相连的1形成一个岛。例如,下面的矩阵包含5个岛:

在讨论问题之前,让我们先了解什么是连接组件。无向图的连通分量是一个子图,其中每两个顶点通过一条路径相互连接,并且不与子图外的其他顶点连接。

所有顶点相互连接的图只有一个连接组件,由整个图组成。这种只有一个连通分量的图称为强连通图。

通过在每个组件上应用DFS()可以轻松解决此问题。在每个DFS()调用中,访问一个组件或一个子图。我们将在下一个未访问的组件上调用DFS。调用DFS()的次数给出了连接组件的数量。也可以使用BFS。

2 什么是岛屿?

一组相连的1形成一个岛。例如,下面的矩阵包含4个岛

2D矩阵中的一个单元可以连接到8个相邻单元。因此,与标准DFS()不同,在标准DFS()中,我们递归调用所有相邻顶点,而在这里,我们只能递归调用8个相邻顶点。我们跟踪已访问的1,以便不再访问它们。

参考:

C#,图(Graph)的数据结构设计与源代码


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

相关文章

NLP 笔记:Latent Dirichlet Allocation (介绍篇)

1 问题介绍 假设我们有一堆新闻,每个新闻都有≥1个主题 我们现在只知道新闻的内容,我们希望一个算法,帮我们把这些新闻分类成主题人类可以根据每个每个文章里面的单词判断主题,那计算机怎么做呢? ——>LDA(Latent D…

【MySQL】聊聊自增id用完怎么办?

在实际的开发中,一般都会将数据存储到数据库中,在设计表的时候,其实id如果达到最大值的话,会出现什么问题。其实主要分两种情况,一种是设置了主键id,另一种没有设置主键id。 表定义自增值id create table…

亚马逊云科技《生成式 AI 精英速成计划》

最近亚马逊云科技推出了「生成式AI精英速成计划」,获取包含:免费学习热门生成式AI课程、技能证书、人力主管的面试辅导、云计算国际认证、免费去往北美参加全球用户大会等~ 针对开发者和企业非技术专业人士,了解如何使用大模型平台…

[数据结构]二叉树(下)

一、二叉树的节点和深度关系 1.满二叉树 我们可以假设二叉树有N个节点,深度为h我们可以恒容易得到满二叉树每行的节点数,然后错位相减,算出节点与高度的关系。 2.完全二叉树 注意我这个是因为最后一行的节点数为1。 二、向上调整建堆和向下调整建堆的时…

使用 Flink + Faker Connector 生成测试数据压测 MySQL

博主历时三年精心创作的《大数据平台架构与原型实现:数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行,点击《重磅推荐:建大数据平台太难了!给我发个工程原型吧!》了解图书详情,…

【0274】从shared init file或local init file加载relation cache(2 - 1)

上一篇: 【0273】深入分析 relcache(relation descriptor cache)初始化第一阶段(1) 【0264】深入分析relcache(relation descriptor cache)缓存初始化第2阶段(2) 1. 前言 本文内容是作为《【0264】深入分析relcache(relation descriptor cache)缓存初始化第2阶段…

数据可视化-ECharts Html项目实战(5)

在之前的文章中,我们学习了如何设置滚动图例,工具箱设置和插入图片。想了解的朋友可以查看这篇文章。同时,希望我的文章能帮助到你,如果觉得我的文章写的不错,请留下你宝贵的点赞,谢谢 数据可视化-ECharts…

STM32 CAN的工作模式

STM32 CAN的工作模式 正常模式 正常模式下就是一个正常的CAN节点,可以向总线发送数据和接收数据。 静默模式 静默模式下,它自己的输出端的逻辑0数据会直接传输到它自己的输入端,逻辑1可以被发送到总线,所以它不能向总线发送显性…