Also muss ich so in der Eingabe von Kanten eines zweiteiligen Graphen nehmen:Wie kann ich ein Array von verknüpften Listen in Java erstellen?
6
1 3
1 2
1 5
2 7
2 4
2 9
Die erste Zahl die Anzahl der Kanten ist. Danach werden die Kanten aufgelistet. Sehen Sie, wie zum Beispiel Knoten 1 mehrere verschiedene Kanten hat und ich verfolgen möchte, was mit 1 verbunden ist, dachte ich, dass jeder Scheitelpunkt des Graphen eine Art Liste von Scheitelpunkten haben würde, mit denen er zu versuchen versucht Erstellen Sie eine Reihe von verknüpften Listen, aber ich bin mir nicht sicher, wie ich das machen würde. Ich versuchte
LinkedList<Integer>[] vertex = new LinkedList[5];
int i = 0, m = 6;
while(i!=m){
int temp = sc.nextInt();
int temp2 = sc.nextInt();
vertex[temp].add(temp2);
i++;
}
Aber ich bekomme eine Nullpointerexzeption an der Add-Linie.
Sie haben die Elemente im Array, nur das Array selbst nicht initialisiert. –
Haben Sie an Klassen wie "Vertex", "Edge" gedacht? Und haben Sie eine 'Liste' in einer anderen Klasse namens 'Graph'? –
Arrays verwenden auch 0-basierte Indizes, was bedeutet, dass ein Array der Größe 5 die Indizes "0 ... 4" hat. –