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 18:56] – 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 mit unterschiedlich langen Listen. welchen Fall solltest du unbedingt testen? | + | |
+ | Teste deine Methode, indem du Elemente in eine Liste einfügst und mit dem Objektinspektor überprüfst, | ||
+ | |||
+ | //Tipp: Nutze die bereits implementierte Methode '' | ||
++++ Lösungsvorschlag | | ++++ Lösungsvorschlag | | ||
+ | |||
<code java> | <code java> | ||
/** | /** | ||
- | | + | |
- | * | + | |
- | * @return | + | * @param val Der einzufügende Wert |
*/ | */ | ||
- | public | + | public |
- | | + | |
- | + | ||
- | Node<T> n = first; | + | |
- | + | ||
- | if ( n == null) { | + | |
- | return numElements; | + | |
- | } | + | |
| | ||
- | | + | |
+ | Node< | ||
| | ||
- | | + | |
- | n = n.getNext(); | + | // Knoten eingefuegt werden |
- | | + | if (index == 0) { |
- | } | + | new_node.setNext(first); |
+ | first = new_node; | ||
+ | } else { | ||
+ | | ||
+ | new_node.setNext(n.getNext()); | ||
+ | | ||
+ | } | ||
| | ||
- | return numElements; | ||
} | } | ||
+ | | ||
</ | </ | ||
++++ | ++++ | ||
- | ===== n-ten Wert auslesen ===== | ||
+ | ---- | ||
+ | < |