我一直在尝试编译这段代码,但我似乎无法正确地获取它的语法。我想使这个函数成为bst类的成员函数。 Node结构和FindMin在类之外可以很好地相互协作,但我不能使声明工作。
//class bst
//{
public:
struct Node
{
int data;
struct Node *left;
struct Node *right;
};
//struct FindMin(Node*);
//};
//Function to find minimum in a tree.
Node* FindMin(Node* root)
{
while(root->left != NULL) root = root->left;
return root;
}
答案 0 :(得分:4)
您可以像其他任何一样声明成员函数。 Node
在类的范围内声明,因此您可以直接引用它。
如果将定义放在类主体之外,则必须指定返回值的完整范围。
class bst
{
public:
struct Node
{
int data;
struct Node *left;
struct Node *right;
};
Node* FindMin(Node*);
};
bst::Node* bst::FindMin(Node* root) {
// ...
}