2016-06-30 5 views
0

Ich arbeite an einer Methode, die das angegebene Element an der richtigen Stelle in der sortierten Liste eingefügt und ich kann das gleiche Element mehrmals einfügen..wie auch immer meine Methode das Element nicht eingefügt und ich konnte ' Finde heraus, warum es nicht das ganze Element in die richtige Position bringt! Das ist mein CodeEinfügen von Element DoubleLinked

+0

Entschuldigung, aber Ihr Code und Ihr tatsächliches Ergebnis widersprechen, wo ist 'System.out.print (" Iteration: ")'? !! Ich sehe nur 'System.out.print (" Iteration (für sortierte Liste) ")' – niceman

Antwort

0

Bitte nicht die gleiche Frage an StackOverflow zweimal hintereinander. Stattdessen redigiere deine erste Frage.

Zunächst bietet Java eine einfache doppelt verknüpfte Liste. Sie sollten LinkedList<E> verwenden, anstatt zu versuchen, das Rad neu zu erfinden.

Wie auch immer, Sie haben zwei Probleme. Der erste ist, dass Sie einen speziellen Fall haben, um Dinge vor dem Schwanz und nicht hinter dem Schwanz zu platzieren. Sie haben

if(current==tail){ 
    Node n = new Node(element); 
    n.next = tail; 
    tail = n; 
    size++; 
    return this; 
} 

wo diese

if(current == null){ 
    tail.next = d; 
    d.pre = tail; 
    tail = d; 
    return this; 
} 

Zusätzlich sagen sollte, müssen Sie sicherstellen, dass Sie tatsächlich eine doppelt verknüpfte Liste zu tun. Das heißt,

n.next = head; 
head = n; 

benötigt

n.next = head; 
head.pre = n; 
head = n; 

Eine weitere Sache - machen eine binäre Suche, nicht eine lineare Suche. Es ist so viel schneller.

0

Sie sollten sich fragen, wie Ihre Foreach-Schleife wissen soll, wie Sie auf die Werte in Ihrer Liste zugreifen können? Vielleicht ist es in Ihrer Superklasse implementiert, aber funktioniert es auch für Ihre spezielle Liste?

Nur eine Theorie, weil ich keine Ahnung habe, was Sie in Ihrem BasicDoubleLinkedList<T> implementiert haben, aber ich denke, das ist, wo Sie anfangen sollten zu suchen.

Werfen Sie einen Blick auf die List<E> Schnittstelle, gibt es mehrere Methoden, könnten Sie überprüfen, ob sie alle korrekt implementiert sind, denke ich nicht. Überschreibe sie einfach und deine Probleme sollten weg sein.

Verwandte Themen