Эй, ребята, я пытаюсь начать работу по моему поручению CS (второй год C бумаги).
В этом курсе мы создали бинарное дерево поиска ADT и также Red Black Tree ADT. Мы должны объединить их в один более общего «Дерево» ADT, который будет либо выбрать, чтобы быть Red Black Tree или Двоичное дерево поиска в зависимости от пользовательского ввода.
Я начал с определения нового перечисляемого типа; treetype_t, который может быть установлен или в RBT или BST ... мой первый вопрос, как я объявляю-структуру, так как я не знаю, который будет выбран ADT? например, в моем файле bst.c у меня есть:
struct bstnode {
char *key;
bst left;
bst right;
};
и в моем файле RBT у меня есть:
struct rbtnode {
char *key;
colour_t colour;
rbt left;
rbt right;
};
Моя первая мысль была иметь если заявление, такие как
if (treetype_t == RBT){
struct rbtnode {
char *key;
colour_t colour;
rbt left;
rbt right;
};
}
else{
struct bstnode {
char *key;
bst left;
bst right;
};
}
Однако я не думаю, что это будет работать ... Я не могу думать о другом подходе - любые идеи?













