gpt4 book ai didi

c - C中的通用数据结构

转载 作者:行者123 更新时间:2023-12-01 08:59:05 24 4
gpt4 key购买 nike

我正在研究创建通用 BST。没有 COTS 没什么特别的,但我正在尝试确定跟踪 void* 类型的最佳方法。这是节点的界面:

typedef struct
{
void *data;
struct TreeNode *left;
struct TreeNode *right;
} TreeNode;

但是,当我编写添加/删除时,我需要进行比较,因此我需要跟踪“数据”指向的数据类型,对吧?

基本思想是有一个枚举 Node_Type 和一个函数 compareTreeNodes,它接收两个 TreeNode 和枚举作为第三个参数。这将允许该函数确定将 void* 转换为什么。

还有其他/更好的想法吗?

最佳答案

However, when I write add/remove, I'll need to do comparisons, hence I'll need to keep track of the type of data that "data" is pointing to, right?

看看 qsort() 是如何解决这个问题的。它也需要处理任意数据类型。基本上,您通过函数指针将比较委托(delegate)给用户。

关于c - C中的通用数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3933705/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com