Wie entfernt man unten ein Element aus einer Liste im Entwurfsmuster Kompositum in Java?

... komplette Frage anzeigen

2 Antworten

1. Logischerweise wird der Methode ein Datenelement (der Inhalt des Knotens) zum Vergleichen übergeben.

2. Wenn der Inhalt des aktuellen Knotens mit dem übergebenen Wert übereinstimmt, dann wird der Nachfolger zurückgegeben. Somit fällt der aktuelle Knoten raus.

3. Ansonsten wird die Methode rekursiv auf dem Nachfolger ausgeführt. Der Knoten gibt sich selbst zurück (dadurch kann beim Rücklauf die Lister wiederhergestellt werden).

4. Wenn die Rekursion beim Abschluss angekommen ist, gab es den zu löschenden Knoten nicht, daher wird der Abschluss einfach zurückgegeben.

Code für den Knoten :

Datenelement inhalt;
Listenelement nachfolger;
public Listenelement knotenLoeschen(Datenelement d){
if(d.equals(inhalt)){
return nachfolger;
}
else{
nachfolger = nachfolger.knotenLoeschen(d);
return this;
}
}

Code für den Abschluss:

public Listenelement knotenLoeschen(Datenelement d){
return this;
}

Antwort bewerten Vielen Dank für Deine Bewertung

Ohne die verwendete Datenstruktur zu kennen, kann man dir nicht sagen wie du etwas entfernst. Da es sich im einen Baum handelt, musst du den Knoten finden und dann entfernen. Entweder per Index, aus Liste. 

Siehe https://de.wikipedia.org/wiki/Kompositum_(Entwurfsmuster)

Antwort bewerten Vielen Dank für Deine Bewertung
Kommentar von procoder42
17.03.2016, 18:27

Ohne die verwendete Datenstruktur zu kennen,

Hmpf Titel -> "Wie entfernt man unten ein Element aus einer Liste im Entwurfsmuster Kompositum in Java"

1