diff options
Diffstat (limited to 'Info')
| -rw-r--r-- | Info/12/Listen/Kompositum/slides.md | 27 |
1 files changed, 25 insertions, 2 deletions
diff --git a/Info/12/Listen/Kompositum/slides.md b/Info/12/Listen/Kompositum/slides.md index cbda020b..e06cedb3 100644 --- a/Info/12/Listen/Kompositum/slides.md +++ b/Info/12/Listen/Kompositum/slides.md @@ -434,7 +434,8 @@ class Abschluss { ```java class Liste { // [...] void elementEntfernen(Daten daten) { - anfang.elementEntfernen(daten); + if (anfang.datenGeben() == daten) { vorneEntfernen(); } + else { anfang.elementEntfernen(daten); } } } class Eintrag { @@ -447,7 +448,29 @@ class Eintrag { } } class Abschluss { - Daten elementEntfernen(Daten daten) { } + void elementEntfernen(Daten daten) { } +} +``` + +## Implementierung: `Daten elementEntfernen(daten)` v2 + +```java +class Liste { // [...] + void elementEntfernen(Daten daten) { + anfang = anfang.elementEntfernen(daten); + } +} +class Eintrag { + void elementEntfernen(Daten daten) { + if (this.datenGeben() == daten) { + return naechsterGeben(); + } + nachfolger = nachfolger.elementEntfernen(daten); + return this; + } +} +class Abschluss { + void elementEntfernen(Daten daten) { return this; } } ``` |
