Я реализовал список смежности с целыми числами, добавление и удаление вершин, таких как ребра, отлично работает для меня.Но теперь я хочу сделать BreadthFirstSearch, чтобы получить BFSTree, и мне нужно отметить вершины, например, белый, серый или черный.
Я знаю, что это не может работать, как я пытался, записал его вкод, просто хотел уточнить, что я пытался сделать.Но как мне реализовать это иначе?Я действительно застрял здесь ..
public class UndirectedGraph {
private int vertexCount;
private LinkedList<Integer>[] adjacencyListArray;
private static UndirectedGraph graph;
private String color;
public UndirectedGraph(int n) {
this.vertexCount = n;
this.adjacencyListArray = new LinkedList[vertexCount];
for (int i = 0; i < vertexCount; i++) {
adjacencyListArray[i] = new LinkedList<>();
}
}
public void addEdge(int i, int j) {
graph.adjacencyListArray[i].add(j + 1);
graph.adjacencyListArray[j].add(i + 1);
}
public Graph getBFSTree(int s) {
for (int i = 0; i < vertexCount; i++) {
for (int j = 0; j < adjacencyListArray[i].size(); j++) {
adjacencyListArray[i].get(j).color = "white";
}
}
}
}