Мне нужно создать массив связанных списков для класса, чтобы сохранить график (список смежности).Мы должны использовать Java.Я могу создать массив и создать экземпляр каждого связанного списка, но когда я добавляю первые элементы к каждому, меняется каждый связанный список, а не только тот, который находится в индексе массива.
Node [] adjList;
for(i=0;i<adjList.length;i++)
adjList[i] = new Node(0,0,null);
это создает каждый новый связанный список [Node
- это мой собственный класс с конструктором Node(int head, int data, Node next
) и расширяет LinkedList
]
, затем я добавляю первые значенияна каждый узел:
for(i=0;i<adjList.length;i++)
adjList[i].setHead(i+1); // numbers 1 to end are the graph vertices
или
for(i=0;i<adjList.length;i++)
adjList[i].add(new Node(i+1,0,null);
Я использую операторы печати для отладки кода в конце этого цикла. Я печатаю каждый связанный список, но для каждогозначения оказываются окончательными
т.е.если adjList.length = 2
, то будет напечатано
[3,0,null] // adjList[0]
[3,0,null] // adjList[1]
[3,0,null] // adjList[2]
edit: вот класс Node
import java.util.LinkedList;
public class Node extends LinkedList{
private static int head;
private static int data;
private static Node next;
public Node(int h,int d,Node n) {
head = h;
data = d;
next = n;
}
public int getHead(){ // getNext() and getData() are the same
return head;
}
public void setHead(int h){ // setNext() and setData() are basically the same
head = h;
}
}