Ich bin sehr zuversichtlich, dass ich in diesem Code richtig liege. Logischerweise macht es Sinn für mich, aber aus irgendeinem Grund weigert sich das Programm, einen bestimmten Punkt zu überschreiten. Ich sollte dies tun, ohne proprietäre Klassen oder Hashtables zu verwenden. Mein Listenknoten ist eine einfache einfach verknüpfte Liste. Angenommen, ich habe zuerst eine Dummy-Liste, 0, kann ich eine Nummer zur Liste hinzufügen, aber das ist alles. Dies ist die Methode, die nicht funktioniert, nachdem Sie die erste Nummer hinzugefügt haben.Eine Nummer in eine verkettete Liste einfügen und dabei in java weiter sortieren
meiner Liste Unter der Annahme, 0 -> 2. und ich versuche 1.
public void insert(int newElement) {
List marker = head;
List temp = new List(newElement, null);
if (head.next == null) {
head.next = temp;
} else {
while (marker.next != null) {
if (newElement < marker.next.value) {
temp.next = marker.next;
marker.next = temp;
marker = marker.next;
}
}
}
}
, was passiert, wenn Ihr Kopf ist 5 dann 0 hinzufügen, finden Sie eine Liste von 5-> 0 –
Also rechts von der Fledermaus bekommen ich von einem Fall denken kann, die nicht mit Ihrem Code nicht funktionieren. Sie berücksichtigen nicht, dass der eingefügte Knoten kleiner als der Kopf sein kann. Dies bedeutet sofort, dass Ihre Liste unsortiert wird. Beheben Sie das und wenn Sie weitere Fragen haben, kommen Sie zurück und fragen Sie diese. – Jay
Wenn es hilft, ist dies ein Problem mit Ihrer Logik und keine Subtilität oder Fehler in Bezug auf Java selbst. Einige unmittelbare Probleme, die noch nicht erwähnt wurden, sind, dass die 'while'-Schleife niemals endet, wenn' newElement> = marker.next.value', und dass ein Element mehrfach eingefügt werden kann, weil es nicht nach dem ersten Mal stoppt –