Skip to content

Instantly share code, notes, and snippets.

@thomasbrus
Created January 20, 2013 20:41
Show Gist options
  • Save thomasbrus/4581579 to your computer and use it in GitHub Desktop.
Save thomasbrus/4581579 to your computer and use it in GitHub Desktop.
boolean canRemoveEdge(HashMap<Node, List<Node>> adjacencyList, node1, node2) {
// Verwijder edge vw
adjacencyList.get(node1).remove(node2);
adjacencyList.get(node2).remove(node1);
List<Node> reachableNodes = getReachableNodes(adjacencyList, [], node1);
return reachableNodes.contains(node2);
}
List<Node> getReachableNodes(HashMap<Node, List<Node>> adjacencyList, List<Node> visitedNodes, Node node1) {
visitedNodes.add(node1);
for (Node neighbour : adjacencyList.get(node1)) {
if (!visitedNodes.contains(neighbour)) {
visitedNodes.addAll(getReachableNodes(adjacencyList, visitedNodes, neighbour));
}
}
return visitedNodes;
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment