Hei baieti am încercat pentru a începe misiunea mea CS (C hârtie al doilea an).
În acest curs am creat un binar de căutare copac ADT și, de asemenea, un roșu negru copac ADT. Trebuie să le combine într-un singur mai general „Arborele“ ADT, care va alege fie să fie un negru copac roșu sau un binar de căutare copac în funcție de datele introduse de utilizator.
Am început prin definirea unui nou tip enumerat; treetype_t care poate fi setat la RBT sau BST ... prima mea întrebare este cum declar struct, deoarece nu știu ce ADT va fi selectat? de exemplu, în fișierul meu bst.c am:
struct bstnode {
char *key;
bst left;
bst right;
};
și în fișierul meu RBT am:
struct rbtnode {
char *key;
colour_t colour;
rbt left;
rbt right;
};
Prima mea idee a fost de a avea o declarație, cum ar fi în cazul în care
if (treetype_t == RBT){
struct rbtnode {
char *key;
colour_t colour;
rbt left;
rbt right;
};
}
else{
struct bstnode {
char *key;
bst left;
bst right;
};
}
Cu toate acestea nu cred că acest lucru va funcționa ... Nu mă pot gândi la o altă abordare - orice idei?













