今天的Erlang Thursday讲的是 digraph:get_cycle/2.
我们将继续在上一篇文章 digraph:get_path/3 用的有向图上讲解。
|
|
digraph:get_cycle/2 两个入参分别是一个有向图G,一个节点V,该函数尝试在有向图中找到一条路径使得节点V在其中并且形成一个环。
|
|
接着我们增加一个新节点V5,并且新增一条从节点V4发出到节点V5的边。
然后我们调用 digraph:get_cycle/2 第二个入参是V5,我们会得到一个false,因为在图中没有一个环使得V5在其中。
|
|
digraph模块还有一个函数 digraph:get_short_cycle/2 。
digraph:get_short_cycle/2 尝试为节点V在图G中找到一条最短的环。
官方文档解释 digraph:get_short_cycle/2 的原话是:
尝试在有向图G上找到尽可能短的通过节点V的简单环。
因此这取决于你如何理解这句话,可能不能保证返回最短的环,而只是返回更短的一个环,这可能取决于有向图的整体大小和复杂度。
|
|
原文链接: https://www.proctor-it.com/erlang-thursday-digraph-get_cycle-2/