noe Geschrieben 6. März 2008 Geschrieben 6. März 2008 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? Zitieren
geloescht_Newlukai Geschrieben 6. März 2008 Geschrieben 6. März 2008 Verstehe ich jetzt nicht ganz. Entweder Du implementierst Deinen Baum mit den benötigten Funktionalitäten oder Du verwendest einen der vorgegebenen Bäume der Java-API, oder?!? Zitieren
noe Geschrieben 6. März 2008 Autor Geschrieben 6. März 2008 Ja! Aber das weiss ich ja grad nicht: ... wo find ich die voreingestellten Bäume der api, wie heißen die Klassen? Zitieren
geloescht_Newlukai Geschrieben 6. März 2008 Geschrieben 6. März 2008 Da mußt Du mal in der Java API nachsehen. Mir fällt gerade auf, daß Dich die Collection-Bäume nicht interessieren dürften. Und ob es reine "Nodes" o. ä. gibt, weiß ich so gar nicht. Aber so ein Baum ist doch schnell implementiert (je nach Funktionalität). Zitieren
flashpixx Geschrieben 6. März 2008 Geschrieben 6. März 2008 Hi, wenn Du's zu Fuß machen musst: Flashpixx.de Phil Zitieren
noe Geschrieben 6. März 2008 Autor Geschrieben 6. März 2008 ja ok, dann werd ichs wohl selbst machen müssen. Dabei wundert es mich schon dass es sowas nicht gibt, wenn man sich ansieht was es sonst schon so alles in der api gibt! Danke! Zitieren
kingofbrain Geschrieben 6. März 2008 Geschrieben 6. März 2008 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 Zitieren
Lizzy Geschrieben 6. März 2008 Geschrieben 6. März 2008 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. Zitieren
kingofbrain Geschrieben 7. März 2008 Geschrieben 7. März 2008 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 Zitieren
Lizzy Geschrieben 7. März 2008 Geschrieben 7. März 2008 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 Zitieren
kingofbrain Geschrieben 8. März 2008 Geschrieben 8. März 2008 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 Zitieren
Lizzy Geschrieben 8. März 2008 Geschrieben 8. März 2008 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 Zitieren
kingofbrain Geschrieben 8. März 2008 Geschrieben 8. März 2008 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 Zitieren
Empfohlene Beiträge
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.