faecher:informatik:oberstufe:adt:verkettete_liste:liste_java:lengthvalue

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.

Link zu der Vergleichsansicht

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 sbelfaecher: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/Wert auslesen  ======
  
 +===== 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.
 +
 +---- 
 +{{:aufgabe.png?nolink  |}}
 +=== (A1) ===
 +
 +  * Implementiere die Methode ''length''
 +  * 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   Anzahl der Listenelemente
 +     */
 +    public int length() {
 +        int numElements = 0;
 +        
 +        Node<T> n = first;
 +        
 +        if ( n == null) {
 +            return numElements;
 +        }
 +        
 +        numElements++;
 +        
 +        while ( n.getNext() != null ) {
 +            n = n.getNext();
 +            numElements++;
 +        }
 +        
 +        return numElements;
 +    }
 +</code>
 +++++
 +===== n-ten Wert auslesen =====
 +
 +{{:aufgabe.png?nolink  |}}
 +=== (A2) ===
 +
 +Überlege dir eine Möglichkeit, eine Referenz auf das n-te Element der Liste zu ermitteln und implementiere zunächst eine **neue** (private) Methode ''getNode(int index): Node'', die eine Referenz auf den n-ten Knoten zurückliefert.
 +
 +
 +  * 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
 +     */
 +     private Node getNode(int index) {
 +        
 +        if (index < 0 || index > this.length()-1) {
 +            return null;
 +        }
 +        
 +        Node<T> n = first;
 +        for (int i=0; i<index; i++) {
 +            n = n.getNext();
 +        }
 +        
 +        return n;
 +    }
 +</code>
 +++++ 
 +
 +---- 
 +{{:aufgabe.png?nolink  |}}
 +=== (A3) ===
 +
 +Verwende die oben implementierte private Methode ''getNode(int index): Node'', um damit die Methode ''getValueAtN'' zu programmieren, die den Wert des n-ten Knotens zurückgibt.
 +
 +----
 +
 +<btn>[[..:liste_java:append|<<< Zurück zum Anhängen (am Ende)]]</btn> **oder** <btn>[[..:liste_java:insert|Weiter zum Einfügen (am Index) >>>]]</btn>
  • faecher/informatik/oberstufe/adt/verkettete_liste/liste_java/lengthvalue.1634756240.txt.gz
  • Zuletzt geändert: 20.10.2021 18:57
  • von sbel