错误:请求"cur"中的成员"成员",该成员属于非类类型节点<int>* 二叉树



我有一个二叉树

template<class item_type>
 struct node{
     item_type x;
     node<item_type> *left;
     node<item_type> *right;
 };
 template<class item_type, class param>
 class Tree{
        node<item_type> *root;
 public:
 //functions

在我使用的一些函数中node<item_type> *cur = root;并通过CCD_ 2或CCD_这给我带来了一个错误:

错误:请求成员Get_Height/cur/中的一个函数,该函数为非类类型节点*二进制树

template<class item_type, class param>
int Tree<item_type, param>::Get_Height()
{
    node<item_type> *cur = root;
    while(cur->left!=NULL || cur->right!=NULL)
    {
        if(cur==NULL)
            return 0;
        return max(cur->left.Get_Height(), cur->right.Get_Height())+1;
    }
}

我很确定左边的是node类型根据错误,该函数似乎取了一个指向节点的指针,而不是实际的树,所以这应该不是问题。

cur的类型为struct node *,它是一个指针。

所以我怀疑它应该是cur->left != NULL,而且left也是一个指针,所以它应该是

return max(cur->left->Get_Height(), cur->right->Get_Height())+1;

您的代码中存在严重错误,struct node中没有Get_Height()成员。

最新更新