gpt4 book ai didi

java - 为什么JUNG中的Forest要扩展DirectedGraph?

转载 作者:行者123 更新时间:2023-11-30 04:28:23 26 4
gpt4 key购买 nike

在开始之前,我不太擅长图论。然而,

引用自Wikipedia ,

Any connected graph without simple cycles is a tree. A forest is a disjoint union of trees.

在查看 JUNG 库的源代码时,我注意到森林的定义为

public interface Forest<V,E> extends DirectedGraph<V,E>

从纯语义层面来说,这不是不正确吗?

或者

这样做有什么具体原因吗? (就像在某些算法实现中更有意义/更容易理解)

PS:我知道DirectedGraph只是一个标记接口(interface),没有声明任何函数。因此,使用 DirectedGraph 而不是 UndirectedGraph 确实会产生任何后果(至少我没有看到任何后果)。

最佳答案

JUNG 的 Forest 接口(interface)定义了 getChildrengetParent 方法。人们通常期望这些方法与树木和森林相关联,除非图是有向的,否则这些方法没有意义。

此外,如果没有这样的方法签名,那么拥有 Forest 或 Tree 接口(interface)就没有任何意义。确实,在图论中,树只是一个连通的无环图。但是,没有任何方法(至少具有通用性)适用于具有无向边的树,而这些方法通常不适用于图。也就是说,您当然可以创建一个 Graph 的实现,将其自身限制为具有无向边的树 - 并且您可以自由地这样做。

关于java - 为什么JUNG中的Forest要扩展DirectedGraph?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15285965/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com