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













