allNodesConnected() finished and passed test
This commit is contained in:
parent
b6ba4e7c3b
commit
f6d3005b96
1 changed files with 27 additions and 1 deletions
|
|
@ -132,7 +132,33 @@ public class Graph<T> {
|
|||
*/
|
||||
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();
|
||||
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue