Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
faecher:informatik:oberstufe:adt:verkettete_liste:liste_java:insert [20.10.2021 16:36] – [Einfügen eines neuen Elements] sbel | faecher:informatik:oberstufe:adt:verkettete_liste:liste_java:insert [23.11.2023 16:01] (aktuell) – Marco Kuemmel | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== | + | ====== Einfügen |
- | ===== Listenlänge ===== | + | Das Einfügen eines neuen Knotens ist im folgenden Objektdiagramm dargestellt. Man muss beim Ändern der Objektreferenzen ('' |
+ | {{ : | ||
- | Die Länge der Liste kann man bestimmen, indem man sich vom ersten Element zum letzten bewegt und dabei mit einem Zähler die verarbeiteten Elemente mit zählt. | + | {{: |
+ | === (A1) === | ||
+ | Schreibe als Merksatz stichwortartig nieder, was beim Einfügen eines neuen Knotens an Stelle des n-ten vorhandenen Knotens alles passieren muss. Gibt es Fälle, die gesondert behandelt werden müssen? | ||
---- | ---- | ||
{{: | {{: | ||
- | === (A1) === | + | === (A2) === |
+ | |||
+ | Implementiere die Methode '' | ||
- | * Implementiere die Methode '' | + | Teste deine Methode, indem du Elemente in eine Liste einfügst und mit dem Objektinspektor überprüfst, |
- | * Teste deine Methode mit unterschiedlich langen Listen. welchen Fall solltest du unbedingt testen? | + | |
+ | //Tipp: Nutze die bereits implementierte Methode '' | ||
++++ Lösungsvorschlag | | ++++ Lösungsvorschlag | | ||
+ | |||
<code java> | <code java> | ||
/** | /** | ||
- | | + | |
- | * | + | |
- | * @return | + | * @param val Der einzufügende Wert |
*/ | */ | ||
- | public int length() { | + | public |
- | int numElements = 0; | + | |
| | ||
- | Node< | + | |
+ | | ||
| | ||
- | if ( n == null) { | + | |
- | | + | // Knoten eingefuegt werden |
- | } | + | |
+ | | ||
+ | first = new_node; | ||
+ | } else { | ||
+ | Node< | ||
+ | new_node.setNext(n.getNext()); | ||
+ | n.setNext(new_node); | ||
+ | } | ||
| | ||
- | numElements++; | ||
- | | ||
- | while ( n.getNext() != null ) { | ||
- | n = n.getNext(); | ||
- | numElements++; | ||
- | } | ||
- | | ||
- | return numElements; | ||
} | } | ||
+ | | ||
</ | </ | ||
++++ | ++++ | ||
- | ===== Einfügen eines neuen Elements ===== | + | ---- |
- | Das Einfügen eines neuen Knotens ist im folgenden Objektdiagramm dargestellt. Man muss beim ändern der Objektreferenzen ('' | + | < |
- | + | ||
- | {{ : | + | |
- | + | ||
- | {{: | + | |
- | === (A2) === | + | |
- | Schreibe als Merksatz stichwortartig nieder, was beim Einfügen eines neuen Knotens nach dem n-ten vorhandenen Knoten alles passieren muss. Gibt es Fälle, die gesondert behandelt werden müssen? | + |