LinkedList vorgänger Knoten zurück geben

  • Themenstarter Themenstarter Lisa1988
  • Beginndatum Beginndatum
L

Lisa1988

Gast
Hallo Zusammen,

ich lerne zur Zeit für meine Klausuren. Bei einer Aufgabe komme ich leider nicht auf die Lösung, ich hoffe mir kann jemand helfen.

Ehrlich gesagt, weiß ich leider nicht wie man alle Vorgänger einer Knoten als wieder LinkedList zurück geben kann. Die Methode getPredecessors(int id) soll dies tun. Ich hab da was programmiert, jedoch bin ich mir da nicht sicher.

Die Klasse
Java:
 class Element {

	private int id;
	private LinkedList<Element> precedessors;
	
	public Element(int id) {
		this.id = id;
		precedessors = new LinkedList<Element>();
	}
	
	public LinkedList<Element> getPredecessors(int id) {
		
	}
	
	public int getID() {
		return id;
	}
	
}


Meine getPredecessors()-Lösung
Java:
public LinkedList<Element> getPredecessors(int id) {
	LinkedList<Element> tempPrecedessors = new LinkedList<Element>();
	for(int i = 0; i < precedessors.size(); i++) {
		if(precedessors.get(i).getID() != id) {
			tempPrecedessors.add(precedessors.get(i));
		} else {
			break;
		}
	}
		
	return tempPrecedessors;
}


Das Problem bei meiner Lösung ist, dass ein Knoten, vielleicht mehrere Vorgänger haben kann, die auf den gleichen Knoten verweisen. Ich hoffe, mir kann da jemand helfen.

Liebe Grüße
Lisa
 
Eine Liste, bei der ein Knoten mehr als einen Vorgänger hat, ist doch keine Liste mehr. Wozu also darauf prüfen (bzw. dies überhaupt zulassen)????:L
 
Vielleoicht habe ich die aufgabe auch falsch verstanden. Die Aufgabenstellung lautet:

Implementieren sie die öffentliche Methode getPredecessors() der Klasse Elemente, die eine Liste mit den direkten Vorgängern des entsprechenden Elementes zurückgibt.

Hab ich da was falsches gemacht?

VG
Lisa
 
Nein, entschuldige, mein Fehler - ich nahm an, LinkedList bzw. die Liste generell bezöge sich auf die Struktur, dir deine Elemente enthält.
Die Klasse element enthält bereits eine LinkedList von Element-Objekten. Und sie heißt auch noch predessecors. Du musst also nichts anderes tun, als bei einem Aufruf von getPrecedessors diese Liste zurückzugeben.
 
Zuletzt bearbeitet von einem Moderator:
Ist also folgendes die Lösung?

Java:
 public LinkedList<Element> getPredecessors() {
		return this.precedessors;
	}

Gruß
Lisa
 

Zurück
Oben