Kosntruktor

guguli

Bekanntes Mitglied
Hi, ich habe folgendes Problem:

Ich hab diese Klasse mit der konstruktur.:
Java:
public class Elementh<T> {
public T val;
private Elementh<T> prev;
private Elementh<T> next;
Element(T val; Elementh<T> prev; Elementh<T> next) f
this:val = val;
this:prev = prev;
this:next = next;
}

nun will ich in der klasse List<T> eine methode schreiben die ein element einfügt. und zwar wenn das element kleiner ist als das aktuelle soll es davor eingefügt werden und wenn kleiner ist dahinter und wenn die gleich sind dann bleibt die liste so.


imgrunde genommen ist das klein prblem, ich möchter nur wissen wie ich diese Konstruktur benutzen kann.

Also ich hab die folgende codezeile.
Java:
if (c < val) {
Elementh<T> newEl = new Elementh<T>(v, this.prev, this);
wobei c will ich einfügen und val ist mein aktueller Wert.
also ich füge das element mit dem wert v hinzu und wie zeigen dann die pfeilen. also es gibt ja 2 , eins zeigt auf das nächste element und das andere auf das vorherige.
wie zeigen denn meine pfeilen wenn ich die Konstruktor so aufrufe????

THX
 
K

kneitzel

Gast
Hallo,

als wenn Du ein Element zwischen Zwei Elemente einfügst, dann musst Du natürlich auch die Verweise der zwei Elemente verändern.

Du hast ja
VorderesElement mit next = NaechstesElement
NächstesElement mit prev = VorderesElement

Wenn Du nun den Konstruktor aufrufst, bekommst Du Dein neues Element mit next und prev, aber Du änderst ja nicht die Verweise bisher.

Also brauchst Du neben dem Konstruktor-Aufruf noch sowas wie:
this.prev.next = newEl;
this.prev = newEl;

Wird evtl. deutlicher, wenn man sowas wie
vorigesElement = this.prev
naechstesElement = this
hat, denn dann wird das leicht zu erkennen:
vorigesElement.next = newEl;
naechstesElement.prev = newEl;

Damit hättest Du dann Deine doppelt verkettete Liste. Wobei noch aufpassen musst, ob this.prev nicht null ist. Denn wenn es kein Element mehr gibt, dann kannst Du da auch nirgends next setzen.

Evtl. hilft es dir aber auch, wenn Du es einfach einmal auf einem Blatt Papier aufschreibst. Dann kannst Du die Pfeile immer schön wegradieren und neu zeichnen.

Mit den besten Grüßen,

Konrad
 

Oben