mirror of
https://github.com/TheAlgorithms/Java.git
synced 2025-07-07 17:56:02 +08:00
Fix BFS (#3759)
This commit is contained in:
@ -2,8 +2,6 @@ package com.thealgorithms.searches;
|
||||
|
||||
import com.thealgorithms.searches.DepthFirstSearch.Node;
|
||||
import java.util.ArrayDeque;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.Optional;
|
||||
import java.util.Queue;
|
||||
|
||||
@ -12,7 +10,6 @@ import java.util.Queue;
|
||||
* @date: 31 October 2021 (Sunday)
|
||||
*/
|
||||
public class BreadthFirstSearch {
|
||||
|
||||
public static Optional<Node> search(final Node node, final String name) {
|
||||
if (node.getName().equals(name)) {
|
||||
return Optional.of(node);
|
||||
@ -28,62 +25,8 @@ public class BreadthFirstSearch {
|
||||
}
|
||||
|
||||
queue.addAll(current.getSubNodes());
|
||||
|
||||
queue.remove();
|
||||
}
|
||||
|
||||
return Optional.empty();
|
||||
}
|
||||
|
||||
public static void assertThat(final Object actual, final Object expected) {
|
||||
if (!Objects.equals(actual, expected)) {
|
||||
throw new AssertionError(
|
||||
String.format("expected=%s but was actual=%s", expected, actual)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
public static void main(final String[] args) {
|
||||
final Node rootNode = new Node(
|
||||
"A",
|
||||
List.of(
|
||||
new Node(
|
||||
"B",
|
||||
List.of(
|
||||
new Node("D"),
|
||||
new Node("F", List.of(new Node("H"), new Node("I")))
|
||||
)
|
||||
),
|
||||
new Node("C", List.of(new Node("G"))),
|
||||
new Node("E")
|
||||
)
|
||||
);
|
||||
|
||||
{
|
||||
final String expected = "I";
|
||||
|
||||
final Node result = search(rootNode, expected)
|
||||
.orElseThrow(() -> new AssertionError("Node not found!"));
|
||||
|
||||
assertThat(result.getName(), expected);
|
||||
}
|
||||
|
||||
{
|
||||
final String expected = "G";
|
||||
|
||||
final Node result = search(rootNode, expected)
|
||||
.orElseThrow(() -> new AssertionError("Node not found!"));
|
||||
|
||||
assertThat(result.getName(), expected);
|
||||
}
|
||||
|
||||
{
|
||||
final String expected = "E";
|
||||
|
||||
final Node result = search(rootNode, expected)
|
||||
.orElseThrow(() -> new AssertionError("Node not found!"));
|
||||
|
||||
assertThat(result.getName(), expected);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user