C错误取消引用指向不完整类型二叉树的指针

C error deferencing pointer to incomplete type Binary tree

我正在编写一个 C 库来管理二叉树,但出现错误 "deferencing pointer to incomplete type",我不确定如何解决该问题。这是我的代码:

typedef struct bintree {
    int val;
    struct node * left;
    struct node * right;
} bintree;

和创建树的代码:

bintree* createbintree(bintree * tree, int val) {
    if (tree->val == NULL)
        tree->val = val;
    else if (val < tree->val)
        if (tree->left != NULL)
            insert(tree->left, val);
        else {
            tree->left = malloc(sizeof(bintree));
            tree->left->val = val;
        }  //error occur here
    else if (val >= tree->val)
        if (tree->right != NULL)
            insert(tree->right, val);
        else {
            tree->right = malloc(sizeof(bintree));
            tree->right->val = val;
        }  //and also here
}

我不太确定应该如何解决这个问题。

我看到多个错误:

  • 您正在访问 bintree 的字段 val,而它被声明为 value
  • a bintree 包含指向 struct node* 的指针,但该类型未在任何地方定义(这会导致您的错误)