Hey Jungs, ich versuche, auf meiner CS Zuordnung (zweites Jahr C-Papier) zu beginnen.
In diesem Kurs haben wir einen binären Suchbaum ADT und auch Red Black Tree ADT erstellt. Wir müssen sie in eine allgemeinere „Baum“ ADT kombinieren, die entweder ein Rot Schwarz Baum oder ein binärer Suchbaum je nach Benutzereingabe sein wählen.
Ich habe durch die Definition einer neuen Aufzählungstyp gestartet; treetype_t die entweder zu RBT oder BST ... meine erste Frage festgelegt werden, wie erkläre ich die Struktur, da ich nicht weiß, welche ADT wird ausgewählt? zB in meiner bst.c Datei ich habe:
struct bstnode {
char *key;
bst left;
bst right;
};
und in meiner RBT-Datei habe ich:
struct rbtnode {
char *key;
colour_t colour;
rbt left;
rbt right;
};
Meine erste Idee war, hat eine if-Anweisung wie
if (treetype_t == RBT){
struct rbtnode {
char *key;
colour_t colour;
rbt left;
rbt right;
};
}
else{
struct bstnode {
char *key;
bst left;
bst right;
};
}
Allerdings glaube ich nicht, das funktioniert ... Ich kann nicht von einem anderen Ansatz denken - alle Ideen?













