Einfach verkettete Doppelliste -> Methoden zur Verwendung?

DarthNihilus

Grünschnabel
Hallo zusammen,
erstmal.. ich programmiere das in PHP; aber da es eigentlich zu Java keinen Unterschied gibt, und es wohl hier mehr gibt die von verketteten Listen Ahnung haben, frag ich einfach mal im Java-Bereich.

Ich habe eine vollständige Liste programmiert, sie ist einfach verkettet. Jedoch hat ein Knoten 3 Attribute. Inhalt, Nachfolger und zusätzlich einen Nachbar. Dieser ist wieder ein Knoten. Ich habe außerdem eine abstrakte Klasse Element, und die unterklassen NeighbourEnd, FollowerEnd, ElementClass sowieso FollowerStart. FollowerStart ist jeweils pro Liste das erste Element, sprich wenn ein Objekt einen Nachbar hat, ist dieses ein FollowerStart, der dann als Nachfolger die Folgeelemente hat. Bis hier verstanden?
Alles funktioniert auch bestens. Allerdings weiß ich nicht wie ich die Verwendung gestalten soll. Das System dient einer Websitenavigation, die mehrdimensional ist.

Das heißt, es wird eine Ordnerstruktur rekursiv gescannt. Aus dieser Scannung wird die Liste erstellt.

Wenn ich eine normale Liste habe, mach ich jeweils ein neues Element an den Anfang, ans Ende, oder hinter ein Objekt. Da ich aber auch Nachbarn habe, müsste ich also eine Methode (set_nachbar) oder so implementieren. Aber wo soll diese ansetzen? Soll sie jeweils beim ersten Element gelten, beim letzten, bei deren Nachbarn oder wo? Ich dachte mir also ich schreibe noch ein bisschen zusatzcode "Cursor". Das heißt es wird ein virtueller Cursor gesetzt bei welchem Element man dann ist, und dort kommt der Nachbar oder der Nachfolger hin. Um dann wieder eine Ebene nach oben zu kommen gibts die Methode back();
ist diese Vorgehensweise geschickt oder empfiehlt sich da etwas anderes? Die "Cursor-Variante" ist teils schon sehr kompliziert und viel zu Code lastig. (Anhand der prüfung if element is_set cursor... ihr wisst was ich meine

Gruß, Daniel
 
Naja, es war klar, dass so eine Antwort kommt. Hätte ich mir gleich denken können, dass wieder ein Engstirner denkt, er müsse an seinem alten Regelwerk beharren.
Java und PHP sind wirklich ähnlich, zumindest im Vergleich zu C und anderen komplexeren Sprachen.

Das Rad erfinde ich nicht neu, sagen wir ich mache aus einem Rad eine Kugel. Kugeln sind wesentlich vielseitiger als einfach nur ein dummes zweidimensionales Rad.
Arrays sind deshalb einfach ungenügend, weil sie viel zu wenig Flexibilität zulassen. Das System war einst mit Arrays programmiert, was letztendlich jedoch so komplex wurde, dass niemand mehr durchblickte.

Mag sein, dass ich einen Baum meine. Naja, was solls, ich hab nun eine Methode gefunden. Trotzdem danke für die Hilfe.
 
Zurück