Как пометить вершины в списке смежности цветом? - PullRequest
0 голосов
/ 26 июня 2019

Я реализовал список смежности с целыми числами, добавление и удаление вершин, таких как ребра, отлично работает для меня.Но теперь я хочу сделать 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";    
            }    
        }    
    }    
}
...