Я изучаю создание общего BST.Ничего особенного, нет COTS, но я пытаюсь выбрать лучший способ отслеживать тип пустоты *.Вот интерфейс для узлов:
typedef struct
{
void *data;
struct TreeNode *left;
struct TreeNode *right;
} TreeNode;
Однако, когда я пишу добавить / удалить, мне нужно будет сделать сравнение, следовательно, мне нужно будет отслеживать тип данных, которые «данные»указывает на, верно?
Основная идея состоит в том, чтобы иметь перечисление Node_Type и функцию compareTreeNodes, которая получает два TreeNodes и перечисление как 3-й аргумент.Это позволило бы функции определить, к чему привести пустоту *.
Есть ли другие / лучшие мысли?