Hey guys Ik probeer aan de slag op mijn CS opdracht (tweede jaar C papier).
In deze cursus hebben we een binaire zoekboom ADT en ook een Red Black Tree ADT gemaakt. We moeten ze te combineren in een meer algemene Tree ADT die ofwel zullen kiezen om een ​​Red Black Tree of A Binary Search Boom afhankelijk van de input van de gebruiker te zijn.
Ik ben begonnen met het definiëren van een nieuwe opgesomd type; treetype_t die ofwel kan worden ingesteld op RBT of BST ... mijn eerste vraag is hoe Ik verklaar de structuur, omdat ik weet niet welke ADT zal worden geselecteerd? bijvoorbeeld in mijn bst.c bestand dat ik heb:
struct bstnode {
char *key;
bst left;
bst right;
};
en in mijn RBT bestand dat ik heb:
struct rbtnode {
char *key;
colour_t colour;
rbt left;
rbt right;
};
Mijn eerste idee was om een ​​if-statement zoals
if (treetype_t == RBT){
struct rbtnode {
char *key;
colour_t colour;
rbt left;
rbt right;
};
}
else{
struct bstnode {
char *key;
bst left;
bst right;
};
}
Maar ik denk niet dat dit zal werken ... Ik kan niet denken aan een andere benadering - even welke ideeën?













