如何判断图中有闭环


无向图

  1. 利用拓扑排序结合顶点的度:
  • 求出所有顶点的度

  • 删除所有度<=1的点(叶节点),然后将邻点的度-1。

  • 重复以上步骤直到没有符合条件的顶点为止。

  • 若发现有未被删除顶点说明有环,如下图:


    image.png
  1. 利用DFS看是否能访问到源点。

有向图

  1. 拓扑排序+顶点的入度:
  • 计算所有顶点入度,将入度=0的放入栈中

  • 如果pop栈中元素并将邻点-1后有新的入度为0的点,则push进栈

  • 栈空后如果还有顶点未入栈的则说明有环,如下图:


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

相关阅读更多精彩内容

  • 一些概念 数据结构就是研究数据的逻辑结构和物理结构以及它们之间相互关系,并对这种结构定义相应的运算,而且确保经过这...
    Winterfell_Z阅读 6,619评论 0 13
  • 1)这本书为什么值得看: Python语言描述,如果学的Python用这本书学数据结构更合适 2016年出版,内容...
    孙怀阔阅读 12,962评论 0 15
  • 课程介绍 先修课:概率统计,程序设计实习,集合论与图论 后续课:算法分析与设计,编译原理,操作系统,数据库概论,人...
    ShellyWhen阅读 2,479评论 0 3
  • 能力三核: 知识 这个领域的专业知识、概念、做事的流程、通过学习记忆而来。 技能 我们能熟练操作和完成一系列动作,...
    唐花花阅读 291评论 0 0
  • Today is a dog day In the morning,after eating breakfast ...
    膝盖中过箭阅读 238评论 1 1

友情链接更多精彩内容