AVL-Baum Vergleich
-
Hallo, ich benötige einen AVL-Baum,
der in der Lage ist, verschiedene Datentypen zu speichern.Nun habe ich bei mindestens einem Datentyp, den ich specihern möchte das Problem, dass die normalen Vergleichsoperatoren nicht ausreichen, da die Objekte, die ich vergleichen möchte keine natürliche Ordnung haben und ich wohl eine spezielle Vergleichsfunktion liefern muss.
Wie kann so etwas elegant implementiert werden?
-
Meinst du damit, mehrere unterschiedliche Datentypen gleichzeitig im gleichen Objekt?
Falls ja, dann hast du doch letztendlich irgendeinen variant-Datentyp als unterliegenden Typ und deine Vergleichsfunktion muss dann eben auf diesem arbeiten. Also im Prinzip genau so, wie es die ganzen Containertypen aus der Standardbibliothek machen.
Und falls nein: Genau das gleiche (d.h. so, wie die Standardbibliothek das vor macht), aber ich wundere mich, was in dem Fall die Frage ist. Denn dann ist das was du vor hast doch bloß eine Neuimplementierung von std::set und du kannst dich ganz und gar an dessen Schnittstelle orientieren.Überhaupt ist es in beiden Fällen doch fast identisch zu std::set (wobei der Unterschied zu std::set ist, dass dieses eventuell keinen AVL-Baum benutzt, aber mindestens eine Struktur mit ähnlichen oder besseren Eigenschaften). Warum ist es so wichtig, dass es unbedingt ein AVL-Baum sein muss?