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:lengthvalue [20.10.2021 18:57] – gelöscht sbel | faecher:informatik:oberstufe:adt:verkettete_liste:liste_java:lengthvalue [23.11.2023 16:02] (aktuell) – [n-ten Wert auslesen] Marco Kuemmel | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
+ | ====== Länge der Liste bestimmen/ | ||
+ | ===== Listenlänge ===== | ||
+ | |||
+ | |||
+ | 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) === | ||
+ | |||
+ | * Implementiere die Methode '' | ||
+ | * Teste deine Methode mit unterschiedlich langen Listen. Welchen Fall solltest du unbedingt testen? | ||
+ | |||
+ | ++++ Lösungsvorschlag | | ||
+ | <code java> | ||
+ | /** | ||
+ | * Gibt die Anzahl der Elemente der Liste zurück | ||
+ | | ||
+ | * @return | ||
+ | */ | ||
+ | public int length() { | ||
+ | int numElements = 0; | ||
+ | | ||
+ | Node< | ||
+ | | ||
+ | if ( n == null) { | ||
+ | return numElements; | ||
+ | } | ||
+ | | ||
+ | numElements++; | ||
+ | | ||
+ | while ( n.getNext() != null ) { | ||
+ | n = n.getNext(); | ||
+ | numElements++; | ||
+ | } | ||
+ | | ||
+ | return numElements; | ||
+ | } | ||
+ | </ | ||
+ | ++++ | ||
+ | ===== n-ten Wert auslesen ===== | ||
+ | |||
+ | {{: | ||
+ | === (A2) === | ||
+ | |||
+ | Überlege dir eine Möglichkeit, | ||
+ | |||
+ | |||
+ | * Welche Werte für n sollten akzeptiert werden? | ||
+ | * Mit welchem Sprachkonstrukt kann man das n-te Element ansteuern? | ||
+ | * Was sollte zurückgegeben werden, wenn der n-te Knoten nicht ermittelt werden kann? | ||
+ | |||
+ | |||
+ | ++++ Lösungsvorschlag | | ||
+ | <code java> | ||
+ | /** | ||
+ | * Gibt eine Referenz auf den n-ten Knoten der Liste zurück. | ||
+ | * Wenn der n-te Knoten nicht ermittelt werden kann null | ||
+ | | ||
+ | * @return Node, wenn der n-te Knoten gefunden wird, sonst null | ||
+ | */ | ||
+ | | ||
+ | | ||
+ | if (index < 0 || index > this.length()-1) { | ||
+ | return null; | ||
+ | } | ||
+ | | ||
+ | Node< | ||
+ | for (int i=0; i<index; i++) { | ||
+ | n = n.getNext(); | ||
+ | } | ||
+ | | ||
+ | return n; | ||
+ | } | ||
+ | </ | ||
+ | ++++ | ||
+ | |||
+ | ---- | ||
+ | {{: | ||
+ | === (A3) === | ||
+ | |||
+ | Verwende die oben implementierte private Methode '' | ||
+ | |||
+ | ---- | ||
+ | |||
+ | < |