This commit is contained in:
stiv2804 2019-02-14 15:39:26 +01:00
commit fa9ca8a340

View file

@ -132,7 +132,33 @@ public class Graph<T> {
*/ */
public boolean allNodesConnected() { public boolean allNodesConnected() {
return false; if (nodes.size() < 1)
return true;
final Node<T> firstNode = nodes.get(0);
ArrayList<Node<T>> allVisitedNodes = new ArrayList<Node<T>>();
ArrayList<Node<T>> nextVisitNodes = new ArrayList<Node<T>>();
allVisitedNodes.add(firstNode);
nextVisitNodes.addAll(getEdges(firstNode).stream()
.map(x -> x.getNodeB())
.filter(x -> !allVisitedNodes.contains(x))
.collect(Collectors.toList()));
while (nextVisitNodes.size() > 0) {
nextVisitNodes.addAll(getEdges(nextVisitNodes.get(0)).stream()
.map(x -> x.getNodeB())
.filter(x -> !allVisitedNodes.contains(x))
.collect(Collectors.toList()));
allVisitedNodes.add(nextVisitNodes.get(0));
nextVisitNodes.remove(0);
}
return allVisitedNodes.size() == nodes.size();
} }
} }