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.

(A1)

Implementiere die Methode length

Teste deine Methode mit unterschiedlich langen Listen. Welchen Fall solltest du unbedingt testen?

Lösungsvorschlag

/** * 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; }

n-ten Wert auslesen

(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

/** * 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; }

(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.

<<< Zurück zum Anhängen (am Ende) oder Weiter zum Einfügen (am Index) >>>