====== 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 |
/**
* Gibt die Anzahl der Elemente der Liste zurück
*
* @return Anzahl der Listenelemente
*/
public int length() {
int numElements = 0;
Node n = first;
if ( n == null) {
return numElements;
}
numElements++;
while ( n.getNext() != null ) {
n = n.getNext();
numElements++;
}
return numElements;
}
++++
===== 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 |
/**
* 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 n = first;
for (int i=0; i
++++
----
{{: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.
----
[[..:liste_java:append|<<< Zurück zum Anhängen (am Ende)]] **oder** [[..:liste_java:insert|Weiter zum Einfügen (am Index) >>>]]