iOS-无序图环的寻找和FBRetainCycleDetector的demo

        之前在面试的时候有遇到过问无序图找环的问题, 当时觉得有点闷逼, 毕竟不是科班出身, 也没有静下心去看一些算法的知识. 最近在看Facebook的FBRetainCycleDetector的SDK的时候,看到运用DFS的算法找循环引用,回想到之前找环的问题,原理一致,然后今天就自己写了一个找环的demo

下图是一张包含几个环的无序图:

无序图

先将每个顶点封装成为一个对象:

BLEdgeModel

然后根据无序图封装每一个顶点,如下代码:

封装无序图的顶点

接下来就是来寻找图中顶点所产生的环, 代码如下: 

寻找无序图中的环

按照我上面无序图来说,无序图的最深深度是如下图:

无序图顶点深度

大致的思路就是:

以顶点1为起始顶点, 通过深度寻找法,找到最后一个顶点6,然后一步一步往回寻找环(当然这是以我给的例子作为代表, 如果起始顶点和封装的相连顶点列表中顶点的顺序不一致的话,过程会不一样,不过最终找到的环是一样的), 代码步骤的思路我已经写在demo里面了

以下是demo地址: (包含FBRetainCycleDetector的最简单的demo)

https://github.com/IBIgLiang/iOS-RetainCycleStudy

下次再介绍FBRetainCycleDetector的源代码!!!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    阳明AI阅读 16,074评论 3 119
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 177,041评论 25 709
  • 最近微信小程序越来越受欢迎了,目前微信小程序已经允许开发个人的小程序。 下面就来给大家分享一下,如何开发一款属于自...
    博为峰51Code教研组阅读 3,051评论 0 1
  • 今早和朋友聊起书写,无意中谈起这半年来参加的各种写作小组,以及自己办过的那两期,心里很多感慨。 动笔去写,不怕被别...
    穆勒书信时光阅读 3,150评论 4 2
  • 作为一名曾经的医生,朋友圈里也是医生居多,每每有医闹的报道,基本上也能支持一下,可是这俩天的经历,却让我忍不住想吐...
    叶弥儿阅读 1,468评论 0 0

友情链接更多精彩内容