小编jtd*_*pke的帖子

C中的二叉树仅使用指针

我正在C中完成一项家庭作业,我认为二叉搜索树是实现我的解决方案的最佳方式.问题是我们不允许定义结构或任何复合数据类型,所以没有

struct TreeNode {
    struct TreeNode* parent;
    struct TreeNode* left;
    struct TreeNode* right;
    int key;
    int value;
}
Run Code Online (Sandbox Code Playgroud)

或类似的东西.

树必须完全用指针实现,所以我一直在尝试定义一些宏来使导航和编辑树更容易,比如这个用来获取指向节点父节点的指针(指针所在的位置)是无效指针):

#define PARENT(ptr) *(void *)(ptr+ALIGNMENT)
Run Code Online (Sandbox Code Playgroud)

当然,问题在于你无法取消引用void指针.我的问题是:如果你有一个void指针指向存储器中存储另一个void指针的位置,你怎么能读取存储的指针.

或者,如果这是不可能的,有没有更好的方法来做这棵树?

c binary-tree pointers binary-search

2
推荐指数
1
解决办法
2530
查看次数

标签 统计

binary-search ×1

binary-tree ×1

c ×1

pointers ×1