TreeTraversal für eigenen Baumtypen
-
Hi,
kurze Frage, ob ihr das idiomatisch in Ordnung findet.
Ich habe einen eigenen Baum-Typ, den man auch iterieren können soll. Das Problem ist, wenn ich direkt in diesem Containertyp begin(), end() und iterator() einfüge, dann ist die Traverse-Reihenfolge fixiert. Ich hätte aber lieber unterschiedliche Traverse-Möglichkeiten.
Dafür habe ich dann weitere Typen TreePreorderTraversal, TreePostorderTraversal, ... eingeführt, die man so verwenden kann.
Tree tree; // irgendwelche Werte einfügen for(auto& nodeValue : TreePreorderTraversal(tree)) // edit: aus , mach : { // ... }Findet ihr das in Ordnung oder seht ihr da irgendwelche Probleme bzw. würdet das so ungerne nutzen? Triviale Frage, nehme ich an, aber man weiß ja nie.

Beste Grüße und vielen Dank!
Fleißamme
-
finde ich okay so.
-
Fleißamme
QFT.
Das Problem ist, wenn ich direkt in diesem Containertyp begin(), end() und iterator() einfüge, dann ist die Traverse-Reihenfolge fixiert.
Ich nehme an, du meinst mit Traverse-Reihenfolge die Reihenfolge, mit der die Elemente beim Iterieren erreicht werden.
Durchaus verständlich, dass das nicht fixiert sein soll.Das Idiom, das du da nutzt, ist mir auch schon eingefallen (siehe meinen
iterative()-Thread). Das ist ganz witzig.Und ja, ich finde das in Ordnung, wenn nicht sogar gut.
-
Eisflamme schrieb:
nodeValueWirklich value oder doch der Node selbst?
-
Ich find beides denkbar, wobei ich node jetzt eigentlich besser fände. Über Node kriegt man ja an den Value, über Value nicht mehr.