如何判断一个图是不是为有向无环图(DAG)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何判断一个图是不是为有向无环图(DAG)相关的知识,希望对你有一定的参考价值。

参考技术A 判断图是否为有向无环图的基本思想为:从任意点出发,都不会再回到该点。
Description:
Input:邻接矩阵
color:用来记录节点被访问的情况。‘0’代表未被访问过,‘1代表正在访问’,‘-1’代表该点的后裔节点都已经被访问过。在一次搜索中,若某点的状态为1,则该点之前被访问过,存在环。若某点的状态为‘-1’,则该点的后裔点均被访问过,跳过该次搜索。若某点的状态为‘0’,则该点之前没有被访问过,DFS该点。

本文分别用一个有向无圈图和一个有向有圈图做测试:

DAG(有向无环图)有向树 转换为树

图论中,如果一个 有向图无法从某个顶点出发经过若干条边回到该点,则这个图是一个 有向无环图(DAG图)。
因为有向图中一个点经过两种路线到达另一个点未必形成环,因此有向无环图未必能转化成树, 但任何有向树均为有向无环图。

以上是百度百科纯复制。注意有向树有向无环图真子集,也就是说:有向树全是有向无环图有向无环图一部分是有向树



作者:「已注销」
链接:https://www.zhihu.com/question/280841516/answer/416886028
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

以上是关于如何判断一个图是不是为有向无环图(DAG)的主要内容,如果未能解决你的问题,请参考以下文章

有向无环图描述表达式(C语言)

有向无环图

将有向无环图 (DAG) 转换为树

DAG(有向无环图)易懂介绍

一个有向无环图的拓扑排序序列是唯一的么

有向无环图——描述表达式