我使用自定义图表来表示一组数据,如图所示:
我已经创建了几种允许我填充结构的方法。此类表示的主要目标是快速了解特定路径是否存在。我的路径搜索方法存在以下问题:
例如,如果我考虑路径“A-> D-> X”、“B-> D -> #”、“A-> E -> #”、“A-> D -> #” ,那么我想获取路径的存在性。 但是,如果我考虑路径“B -> D -> X”,我想知道该路径不存在。
对于在不考虑初始数据集的情况下开发此类方法,您有什么建议吗?
最佳答案
如果唯一可用的路径是表中的路径,则可以使用集合数据结构的任何实现,例如 Java 中的 HashSet
或 TreeSet
。只需将所有路径添加到集合中,然后使用 Set.contains
方法检查路径是否有效。
只要有效路径很短或数量很少,这种方法就可以很好地工作。如果存在大量路径并且路径很长,则使用其他数据结构将获得更好的性能。
例如trie是项目序列的集合,可让您检查序列是否在与序列长度成比例的时间内出现。它传统上用于字符串,但您可以轻松地将它用于图形路径。在这种用法中,trie 中的节点将存储图形的节点,以便 trie 中的路径对应于图形中的有效路径。
关于java - 图传递性 Java,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61126291/