我正在研究创建一个通用的 BST。没有什么喜欢没有 COTS,但我正在尝试确定跟踪 void* 类型的最佳方法。这是节点的接口:
typedef struct
{
void *data;
struct TreeNode *left;
struct TreeNode *right;
} TreeNode;
但是,当我编写添加/删除时,我需要进行比较,因此我需要跟踪“数据”指向的数据类型,对吧?
基本思想是有一个枚举 Node_Type 和一个函数 compareTreeNodes,它接收两个 TreeNode 和枚举作为第三个参数。这将允许函数确定将 void* 转换为什么。
还有其他/更好的想法吗?