Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen Revision Vorhergehende Überarbeitung | |||
faecher:informatik:oberstufe:adt:verkettete_liste:liste_java:insert [20.10.2021 22:00] – [Einfügen eines neuen Elements] sbel | faecher:informatik:oberstufe:adt:verkettete_liste:liste_java:insert [Unbekanntes Datum] (aktuell) – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
- | ====== Einfügen eines neuen Elements ====== | ||
- | |||
- | Das Einfügen eines neuen Knotens ist im folgenden Objektdiagramm dargestellt. Man muss beim ändern der Objektreferenzen ('' | ||
- | |||
- | {{ : | ||
- | |||
- | {{: | ||
- | === (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? | ||
- | |||
- | ---- | ||
- | {{: | ||
- | === (A2) === | ||
- | |||
- | Implementiere die Methode '' | ||
- | |||
- | Teste deine Methode, indem du Elemente in eine Liste einfügst und mit dem Objektinspektor überprüfst, | ||
- | |||
- | ++++ Lösungsvorschlag | | ||
- | |||
- | <code java> | ||
- | /** | ||
- | * Fügt einen neuen Wert an einer gewünschten Stelle in der Liste ein. | ||
- | * @param index Die Stelle, an der der neue Wert stehen soll (0 <= index <= laenge()) | ||
- | * @param val Der einzufügende Wert | ||
- | */ | ||
- | public void insertAt(int index, T val) { | ||
- | | ||
- | // Der neue Knoten | ||
- | Node< | ||
- | | ||
- | // Wenn der Index Null ist, muss das Element als erster neuer | ||
- | // Knoten eingefuegt werden | ||
- | if (index == 0) { | ||
- | new_node.setNext(first); | ||
- | first = new_node; | ||
- | } else { | ||
- | Node< | ||
- | new_node.setNext(n.getNext()); | ||
- | n.setNext(new_node); | ||
- | } | ||
- | | ||
- | } | ||
- | | ||
- | </ | ||
- | ++++ |