Estoy buscando en la creación de una BST genérico. No hay nada de fantasía COTS, pero estoy tratando de decidir la mejor manera de no perder de vista el tipo del vacío *. Esta es la unión de los nodos:
typedef struct
{
void *data;
struct TreeNode *left;
struct TreeNode *right;
} TreeNode;
Sin embargo, cuando escribo añadir / quitar, voy a tener que hacer comparaciones, por lo tanto, voy a tener que llevar un registro de los tipos de datos que los datos hace referencia, ¿verdad?
La idea básica es tener una NODE_TYPE enumeración y una función compareTreeNodes que recibe los dos TreeNodes y la enumeración como una tercera arg. Esto permitiría a la función para determinar qué emitir el void * a.
Cualquier otro mejores pensamientos /?













