Γεια σου ρε παιδιά Προσπαθώ να ξεκινήσετε την αποστολή μου CS (χαρτί δεύτερη χρονιά C).
Σε αυτό το μάθημα έχουμε δημιουργήσει μια δυαδική αναζήτηση Δέντρο ADT και επίσης ένα κόκκινο μαύρο δέντρο ADT. Πρέπει να τα συνδυάσετε σε ένα γενικότερο «Δέντρο» ADT που είτε θα επιλέξει να είναι ένα κόκκινο μαύρο δέντρο ή ένα δυαδικό Αναζήτηση δέντρο ανάλογα με την είσοδο του χρήστη.
Έχω αρχίσει με τον καθορισμό ενός νέου αριθμητικού τύπου? treetype_t η οποία μπορεί είτε να ρυθμιστεί ώστε να RBT ή BST ... το πρώτο μου ερώτημα είναι πώς μπορώ να κηρύξει την struct δεδομένου ότι δεν ξέρω ποια θα επιλεγεί ADT; π.χ. σε αρχείο bst.c μου έχω:
struct bstnode {
char *key;
bst left;
bst right;
};
και το αρχείο RBT μου έχω:
struct rbtnode {
char *key;
colour_t colour;
rbt left;
rbt right;
};
Η πρώτη μου ιδέα ήταν να έχουμε μια εντολή if, όπως
if (treetype_t == RBT){
struct rbtnode {
char *key;
colour_t colour;
rbt left;
rbt right;
};
}
else{
struct bstnode {
char *key;
bst left;
bst right;
};
}
Ωστόσο, δεν νομίζω ότι αυτό θα λειτουργήσει ... Δεν μπορώ να σκεφτώ άλλη προσέγγιση - οποιεσδήποτε ιδέες;













