Mă uit în crearea unui BST generic. Nimic chef de nici un COTS, dar am încercat să decidă cel mai bun mod de a ține evidența de tipul void *. Iată interfața pentru nodurile:
typedef struct
{
void *data;
struct TreeNode *left;
struct TreeNode *right;
} TreeNode;
Cu toate acestea, atunci când am scrie adăuga / elimina, va trebui să fac comparații, prin urmare, am avea nevoie pentru a ține evidența de tipul de date pe care „date“ este îndreptat, nu?
Ideea de bază este de a avea un NODE_TYPE enum și o compareTreeNodes funcție care primește cele două TreeNodes și enum ca arg treia. Acest lucru ar permite funcția de a determina ce să arunce void * la.
Orice alte / gânduri mai bune?













