Ich bin auf der Suche in eine generische BST zu schaffen. Nichts Besonderes, keine COTS, aber ich versuche, die beste Art und Weise zu entscheiden, den Überblick über die Art des void * zu halten. Hier ist die Schnittstelle für den Knoten:
typedef struct
{
void *data;
struct TreeNode *left;
struct TreeNode *right;
} TreeNode;
Allerdings, wenn ich schreibe hinzufügen / entfernen, werde ich Vergleiche tun müssen, damit werde ich den Überblick über die Art der Daten behalten müssen, dass „Daten“ zeigt auf, nicht wahr?
Grundidee ist, eine ENUM NODE_TYPE und eine Funktion compareTreeNodes zu haben, die die beiden TreeNodes und die Enum als 3. arg erhält. Dies würde es ermöglichen die Funktion zu bestimmen, was die void * zu werfen.
Alle anderen / besseren Gedanken?













