Ich schreibe eine verkettete Liste (die Java nicht verwendet) und versuche eine get-Methode zu erstellen, um ein Element der Liste nach seiner Indexnummer zurückzugeben. Ursprünglich habe ich dies mit einer for-Schleife geschrieben. Mein Code versagt wiederholt bei einem Test, bei dem er das Element bei Index 0 abruft (ich kann anscheinend Elemente bei anderen Indizes abrufen). Curr ist nur für mich, um den aktuellen Knoten zu verfolgen.Abrufen eines Elements nach Index in der Java-Verkettungsliste
Ich dachte, die for-Schleife könnte sein, was mir Ärger machte, also schrieb ich es als While-Schleife.
while (curr != null) {
if (i == index) {
i++;
return curr.data;
}
curr = curr.next;
}
Aber ich habe immer noch Probleme, das Element an dem 0-Index abgerufen werden. Ich schätze jede Eingabe darüber, wie diese Methoden des Traversierens problematisch sein könnten. Ich bin irgendwie verloren. Ich entschuldige mich auch, wenn meine Formatierung ausgeschaltet ist, gewöhnt ich mich noch an die Formatierung auf dieser Seite.
Beachten Sie, dass Ihre Grenzen Kontrollen (zB 'if (index> numElts) {') sollte vor der Schleife liegen, da sie den Wert im Schleifenkörper nicht ändern. –
@AndyTurner Die Überprüfung der internen Grenzen sollte nicht einmal notwendig sein, da sie sowieso nur zu
billie
@billie true, aber warum sollten Sie die ganze Liste iterieren, wenn Sie wissen, dass es zu Beginn nicht erlaubt ist? –