Weg zurückverfolgen

Status
Nicht offen für weitere Antworten.

Fighter_MV

Mitglied
Mein Programm hat einen Startwert und soll von diesem Startwert aus zu einem Zielwert finden. Dabei hat es bei jedem Schritt 4 Möglichkeiten.
Mein Programm findet zum Zielwert. Allerdings möchte ich, dass die jeweils benutzten Schritte ausgegeben werden. Dazu muss ich den Weg zurückverfolgen.

Jetzt habe ich überall einen Pointer auf den Vorgänger eingebaut, aber ich krieg ne Nullpointer Exception.

Hier ein Ausschnitt von meinem Quellcode:


Code:
public class Knoten {
	
	int wert;
	int status;			// 1 - geguckt, 2 - aktiv, 3 - abgeschlossen
	Knoten option1;
	Knoten option2;
	Knoten option3;
	Knoten option4;
	Knoten vorgaenger;

[...]

if (wert == 10000) {
			System.out.println("10000");
			
			findeWeg(vorgaenger);
			
			System.exit(0);
		}

[...]

if(wert*3 <= 10000) {
				option1 = new Knoten(wert*3, 2);
				option1.vorgaenger = this;
}

[...]

public void findeWeg(Knoten ziel) {
		
		System.out.println(ziel.wert);
		findeWeg(ziel.vorgaenger);
	}

Hat jemand eine Idee woran das liegen kann?
Ich nehme an, dass ich meinen Vorgänger irgendwie falsch zuweise o.o

Gruß

Fighter
 

Ark

Top Contributor
Den Codeschnipsel habe ich mir nicht wirklich angeguckt, aber zwei Dinge sind mir eingefallen:

1. Bist du dir sicher, dass du das wirklich nur "hinterher" machen kannst? Kannst du den Weg nicht "vorwärts" aufzeichnen?
2. Das erste Element (d. h. der erste Schritt) hat keinen Vorgänger. Wurde dies beachtet?

Ark
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben