我在一个学校项目上遇到麻烦。我正在研究实现二进制搜索树的代码。讲师提供了API。
在其中,他指定了一个名为Node
的结构,该结构具有数据项,指向左右节点的指针以及该节点的构造函数。
struct Node
{
const KeyType key_;
DataType data_;
Node * lchild_, * rchild_;
Node (const KeyType& k, const DataType& d, uint8_t flags)
: key_(k), data_(d), lchild_(nullptr), rchild_(nullptr), flags_(flags)
{}
}
他还提供了一个静态函数,声明为:
static size_t RSize (Node * n);
当我尝试将这些功能定义为分配要求时,我将其定义如下:
static size_t RSize(Node * n)
{
if(n == 0) return 0;
return (size_t)(n->IsAlive*()) + RSize(n->lchild_) + RSize(n->rchild_);
}
尝试编译时出现以下错误:
./oaa_bst.h:716:16: error: ‘Node’ was not declared in this scope size_t RSize(Node * n) ^ ./oaa_bst.h:716:23: error: ‘n’ was not declared in this scope size_t RSize(Node * n)