Changes for more abstraction
This commit is contained in:
29
src/search/breadthfirstsearch/BreadthFirstSearch.java
Normal file
29
src/search/breadthfirstsearch/BreadthFirstSearch.java
Normal file
@ -0,0 +1,29 @@
|
||||
package search.breadthfirstsearch;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class BreadthFirstSearch
|
||||
{
|
||||
public Node breadthFirstSearch(List<Node> nodes, Node target)
|
||||
{
|
||||
var newNodes = new ArrayList<Node>();
|
||||
|
||||
for (Node node : nodes)
|
||||
{
|
||||
if (node.isTargetReached(target))
|
||||
{
|
||||
return node;
|
||||
}
|
||||
|
||||
newNodes.addAll(node.generateSuccessors());
|
||||
}
|
||||
|
||||
if (newNodes.isEmpty())
|
||||
{
|
||||
return breadthFirstSearch(newNodes, target);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
8
src/search/breadthfirstsearch/Main.java
Normal file
8
src/search/breadthfirstsearch/Main.java
Normal file
@ -0,0 +1,8 @@
|
||||
package search.breadthfirstsearch;
|
||||
|
||||
public class Main
|
||||
{
|
||||
public static void main(String[] args)
|
||||
{
|
||||
}
|
||||
}
|
9
src/search/breadthfirstsearch/Node.java
Normal file
9
src/search/breadthfirstsearch/Node.java
Normal file
@ -0,0 +1,9 @@
|
||||
package search.breadthfirstsearch;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface Node
|
||||
{
|
||||
boolean isTargetReached(Node target);
|
||||
List<Node> generateSuccessors();
|
||||
}
|
Reference in New Issue
Block a user