【发布时间】:2017-06-16 03:40:20
【问题描述】:
给定一个使用HashMap<String, String> 实现的有向图,判断两个节点是否相连。
例如:
"b"--->"a"<---"c"
Map<String, String> graph = new HashMap<>();
map.put("b", "a");
map.put("c", "a");
"b" 和 "c" 已连接。
我找到了一个post,其中的图是有向图,但解决方案是查找两个节点之间是否存在路径。我的问题有所不同,因为即使"b" 和"c" 之间没有路径,上面示例中的"b" 和"c" 也被认为是连接的。
【问题讨论】:
-
在第二个示例中,
b和c未连接。从a到c有一条边。您在第二次put调用中更改了a的映射。 -
@NeilLocketz 哎呀,对不起,我删除了那个例子。
-
您链接的“解决方案”决定了(有向)图中是否存在从一个节点到另一个节点的路径。这与您提出的问题不同:在您的示例中,没有从“b”到“c”的路径,但您仍然认为它们是连接的。对于您的实际问题的任何解决方案都比您所链接的非解决方案更好。
-
您可以随时将其转换为双向图,并且可以从
b或c开始。 -
嗨,我已经更新了我的问题。在我的示例中,
"b"和"c"被视为已连接。