Data structures 在图上定义无效路径

Data structures 在图上定义无效路径,data-structures,graph-algorithm,Data Structures,Graph Algorithm,我们正在进行一个项目,一个规则有向图适用于大多数情况。然而,在我们的图中,我们想要使一些路径无效。例如,如果我们的图是: A->B A->D B->C D->C 那么A->B->C是有效路径,但A->D->C不是。我们可以在某个地方定义无效路径并每次进行验证检查,但这会导致一个重要的性能问题,因为我们的应用程序高度依赖于图形 那么,对于这种情况是否有特殊的数据结构或算法 感谢您可以在from:listto的每个节点上存储映射,这样您就知道来自a的路径不能到C,因为它不在

我们正在进行一个项目,一个规则有向图适用于大多数情况。然而,在我们的图中,我们想要使一些路径无效。例如,如果我们的图是:

A->B
A->D
B->C
D->C
那么A->B->C是有效路径,但A->D->C不是。我们可以在某个地方定义无效路径并每次进行验证检查,但这会导致一个重要的性能问题,因为我们的应用程序高度依赖于图形

那么,对于这种情况是否有特殊的数据结构或算法


感谢

您可以在from:listto的每个节点上存储映射,这样您就知道来自a的路径不能到C,因为它不在从C可以到的节点列表中。如果深度大于1,则指向它的节点元组可以是一个键,而不是该节点。这很像eBGP在互联网路由中的工作方式

另一方面,无论您决定使用您所描述的数据结构,您都需要进行检查。或者,或者为每种情况存储多个图形