Sto cercando nella creazione di un BST generico. Niente di speciale non COTS, ma sto cercando di decidere il modo migliore per tenere traccia del tipo di void *. Ecco l'interfaccia per i nodi:
typedef struct
{
void *data;
struct TreeNode *left;
struct TreeNode *right;
} TreeNode;
Tuttavia, quando scrivo aggiungere / rimuovere, avrò bisogno di fare confronti, quindi avrò bisogno di tenere traccia del tipo di dati che i dati punta a, giusto?
idea di base è quella di avere un NODE_TYPE enum e un compareTreeNodes funzione che riceve i due TreeNodes ed enum come un terzo arg. Ciò consentirebbe la funzione per determinare che cosa di esercitare la void * a.
Eventuali altri / migliori pensieri?













