Ahoj kluci Snažím se začít pracovat na svém úkolu CS (druhý ročník C papír).
V tomto kurzu jsme vytvořili binární vyhledávací strom ADT a také červeno-černý strom ADT. Musíme je spojit do jednoho obecnější „stromu“ ADT, která bude buď rozhodnout, že je Red Black Tree nebo binární vyhledávací strom v závislosti na vstup uživatele.
Začal jsem tím, že definuje nový výčtového typu; treetype_t které lze nastavit buď na RBT nebo BST ... moje první otázka je, jak mohu prohlásit, že struct, protože nevím, která bude zvolena ADT? například v mém bst.c souboru mám:
struct bstnode {
char *key;
bst left;
bst right;
};
a podle mého RBT souboru mám:
struct rbtnode {
char *key;
colour_t colour;
rbt left;
rbt right;
};
Moje první myšlenka byla, že má-li příkaz jako je
if (treetype_t == RBT){
struct rbtnode {
char *key;
colour_t colour;
rbt left;
rbt right;
};
}
else{
struct bstnode {
char *key;
bst left;
bst right;
};
}
Ale já si nemyslím, že to bude fungovat ... Nemůžu myslet na jiný přístup - Nějaké nápady?













