Я работаю в лаборатории для печати списка смежности и матрицы смежности на основе заданных входных данных.Я успешно создал и распечатал список смежности, но я борюсь с матрицей.Это мой первый опыт работы с матрицей смежности, и у меня не было большого опыта работы с матрицами в целом.
Метод, над которым я работаю, это «generateMatrix (Graph graph)», и, как вы можете видеть, я создал матрицу правильного размера и попытался реализовать список в качестве итератора.Я считаю, что отсюда мне нужно обновить Матрицу с помощью этого итератора (если я создал итератор неправильно, дайте мне знать).
Там, где я застрял, проходит и обновление Матрицы с помощью этого итератора списка.Я не совсем уверен, куда идти отсюда, чтобы выполнить эту Матрицу.Я добавил «Хотя итератор имеет следующий», потому что я думаю, что это то, куда я направляюсь, но не могу придумать, как на самом деле это сделать.Можете ли вы предложить помощь?
public Graph(int n){
this.Nodes = n;
adjVertices = new LinkedList[Nodes];
adjMatrix = new int[Nodes][Nodes];
for(int i = 0; i < Nodes; i++){
adjVertices[i] = new LinkedList<Integer>();
}
}
}
// Add an edge between two given vertices
static void addEdge(Graph graph, int src, int dst){
graph.adjVertices[src].push(dst);
graph.adjVertices[dst].push(src);
}
// Create the adjacency matrix representation
-------------------------------
static void generateMatrix(Graph graph){
graph.adjMatrix = new int[graph.Nodes] [graph.Nodes];
ListIterator<Integer> listIterator = graph.adjVertices
[graph.adjVertices.length - 1].listIterator();
while(listIterator.hasNext()) {
}
}
--------------------------------------
// print the adjacency matrix
static void printMatrix(Graph graph){
// Implement this method
for (int i = 0; i < graph.Nodes; i++) {
for (int j = 0; j < graph.Nodes; j++) {
System.out.print(graph.adjMatrix[i][j] + " ");
}
System.out.println();
}
}
// Print the graph as adjacency list
static void printGraph(Graph graph){
// Implement this method
for(int v = 0; v < graph.Nodes; v++)
{
System.out.println("Adjacency list of vertex "+ v);
System.out.print("head");
for(Integer Print: graph.adjVertices[v]){
System.out.print(" -> "+Print);
}
System.out.println("\n");
}
Ожидаемый результат - это индекс размера [graph.Nodes] [graph.Nodes], который печатает 0 и 1 в нужных местах на основе ввода.Мой вывод в настоящее время просто печатает пустой индекс, так как я еще не обновил ни одного сегмента.