Если я правильно понял ваш вопрос, вы пытаетесь напечатать Graph
и не знаете, где разместить метод main()
. Вы можете просто поместить его в класс графа, если вы просто тестируете код, но если вы пытаетесь создать проект с использованием этого класса, вы можете захотеть создать другой класс для хранения метода main()
.
Печать проста, так как они дают Set<String>
. Просто добавьте следующую строку, прежде чем метод вернет посещенные узлы. Это преобразует список посещенных узлов в строку.
System.out.println(visited.toString());
Вы можете проверить это с помощью следующего кода:
static Graph createGraph() {
Graph graph = new Graph();
graph.addVertex("Bob");
graph.addVertex("Alice");
graph.addVertex("Mark");
graph.addVertex("Rob");
graph.addVertex("Maria");
graph.addEdge("Bob", "Alice");
graph.addEdge("Bob", "Rob");
graph.addEdge("Alice", "Mark");
graph.addEdge("Rob", "Mark");
graph.addEdge("Alice", "Maria");
graph.addEdge("Rob", "Maria");
return graph;
}
public static void main(String[] args) {
Graph graph = createGraph();
GraphTraversal.breadthFirstTraversal(graph, "Bob");
}
Что дает:
[Bob, Alice, Rob, Mark, Maria]
Дополнительно , вы отметили, что получаете NullPointerException
при попытке добавить вершины. Недостаточно информации, чтобы выяснить, почему вы получаете исключение, но вам может быть полезно проверить модульные тесты, чтобы выяснить, как использовать класс. Модульные тесты: , здесь .