我需要检查列表中定向节点的连通性。 基本上是问题,每个问题有2到7个答案。选择的答案决定了下一个问题。 由于这些对将被手动捕获,我需要检查每个可能的路径以循环(不允许)和死角(所有路由必须在END节点处停止) 有什么指针吗?
start --> n1 --- n2 --- n3 --- n4 --- end
\ / \ \ / /
n5 \ n6------ n7
\ \ / /
n8----n9---n10----n11
DIRECTION -->
答案 0 :(得分:4)
这可能是您正在寻找的:
Testing whether a graph is acyclic
您的END节点是叶子节点在该页面的术语中的内容。
要检查没有死角:在使用上述算法之前,只需确保只有一个叶节点。
答案 1 :(得分:3)
使用breadth first search算法,跟踪您已访问过的所有节点。如果,当搜索下一个要遍历的节点时,已经访问过的节点之一是可能的,那么图形是错误的。此外,如果您到达的节点没有其他可能的节点可以遍历到下一个节点,并且您还没有到达结尾,那么图表也没有正确连接。