Zum Inhalt springen

Baumstrukturen


noe

Empfohlene Beiträge

Hallo!

ich bräuchte eine Klasse in Java die eine Baumstruktur darstellt, hab aber nichts in der Richtung gefunden. Ich müsste u.a ein post-order Traversal des Baumes durchführen. Habt ihr vielleicht eine Idee was ich da benutzen könnte?

Link zu diesem Kommentar
Auf anderen Seiten teilen

Servus,

was hätte eine solche Struktur denn für einen Sinn? Die Abbildung von Eltern-Kind-Beziehungen macht ja nur in einem konkreten Anwendungsfall Sinn. Und dann bringt Dir eine allgemeine Oberstruktur ja nichts. Und wenn es wirklich nur um die Implementierung dieser Eltern-Kind-Struktur geht, dann handelt es sich um eine Klasse mit einer Referenz auf sich selbst, das ist trivial.

Sonst könnte man sich auch beschweren, das es keine Klasse Person gibt und Address. Das habe ich bis jetzt auch in fast jeder Software benötigt. :)

Peter

Link zu diesem Kommentar
Auf anderen Seiten teilen

Servus,

was hätte eine solche Struktur denn für einen Sinn? Die Abbildung von Eltern-Kind-Beziehungen macht ja nur in einem konkreten Anwendungsfall Sinn. Und dann bringt Dir eine allgemeine Oberstruktur ja nichts.

Hae? Also Generics sind ja heutzutage kaum noch boemische Doerfer und gehoeren zum guten Ton. Ich kenne mich da nicht wer weiss wie aus, aber aktuelle Java Versionen unterstuetzen diese und dann ist die Nachfrage nach einer generischen Baumstruktur doch berechtigt.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Nein, das ist nicht berechtigt. Die Klasse würde so in etwa aussehen:


public class Node {

    private List<Node> children;


    // tolle helper methods wie add, remove, usw

}

Warum sollte so etwas triviales in die offizielle API? Und welchen Vorteil hättest Du mit Generics?

Ich bleib dabei, das macht genau so wenig Sinn, wie eine Klasse Person.

Peter

Link zu diesem Kommentar
Auf anderen Seiten teilen

Warum sollte so etwas triviales in die offizielle API?

Gegenfrage: Was macht dann die von Dir verwendete List in der offiziellen API? Eine Liste ist in gewissem Sinne ein besondere (vereinfachte) Art eines Baumes.

Zudem nimmt einem eine vorgefertigte Baumstruktur einen Haufen Schreibarbeit ab. Mit einem einfachen Add und Delete ist's ja nicht getan. Ich haette da noch mehr anzubieten, was eine gute Baumimplementierung koennen muss:

- GetParent()

- GetNextSibling()

- GetPreviousSibling()

- GetChildCount(bool rekursiv)

- GetRoot()

- Clone()

- SortTree()

- ...

Das sind alles meist sehr kurze Methoden, aber wieso sollte man die jedes Mal neu implementieren?

Und welchen Vorteil hättest Du mit Generics?

Denselben wie immer, wenn Generics im Spiel sind: Typsicherheit bei optimal wiederverwendbarem Code. Ein Tree<Person> laesst sich auf dieselbe Weise ansprechen wie ein Tree<Dateisystemobjekt> oder Tree<Integer>.

Gruesse, Lizzy

Link zu diesem Kommentar
Auf anderen Seiten teilen

Servus,

ich hatte es zwar schon vermutet, aber jetzt dürfte es klar sein. Du willst eine Collection, die als Baum implementiert ist. Dafür gibts ja java.util.TreeMap. Allerdings hat dieser Tree nichts mit dem zu tun, was der Threadersteller will. Er will eine Datenstruktur, in der er direkt auf der Struktur des Baums arbeiten kann. Und genau das ist eben in meinen Augen unsinnig, da trivial.

Peter

Link zu diesem Kommentar
Auf anderen Seiten teilen

Servus,

ich hatte es zwar schon vermutet, aber jetzt dürfte es klar sein. Du willst eine Collection, die als Baum implementiert ist. Dafür gibts ja java.util.TreeMap. Allerdings hat dieser Tree nichts mit dem zu tun, was der Threadersteller will. Er will eine Datenstruktur, in der er direkt auf der Struktur des Baums arbeiten kann. Und genau das ist eben in meinen Augen unsinnig, da trivial.

Peter

Hi,

seit wann hat eine TreeMap Methoden wie z.B. "GetNextSibling"? Damit arbeite ich naemlich direkt auf der Struktur des Baumes. Ich rede nicht von einer Collection. Wenn es hier um Collections ginge, dann duerfte die Frage nach einer Baumstruktur per Definition gar nicht aufkommen. Dabei interessiert mich die Implementierung absolut null, sondern das O-Kalkuel der verschiedenen Operationen.

Gruesse,

Lizzy

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dann habe ich Dich doch falsch verstanden, sorry.

Gut, so werden wir auf keinen gemeinsamen Nenner kommen. :) Meine Meinung ist klar, Deine anders. Schreib doch im entsprechenden JCR (Java 6 war JSR 270, den für Java 7 habe ich auf die Schnelle nicht gefunden) mal eine Eingabe, wäre interessant, was die Leute dort von der Idee halten.

Peter

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...