我得到它构建二叉搜索树时,我不明白的错误:错误:未定义参考...调用另一个成员函数的成员函数时
这里是我的类的声明:
class BINARY{
public:
struct node{
double key;
node *parent;
node *left;
node *right;
};
node *root;
int count;
BINARY();
bool IS_EMPTY();
int BINARY_SIZE();
node *SUCCESSOR(node *pointer);
node *PREDECESSOR(node *pointer);
node *BINARY_INSERTION(double element);
double BINARY_DELETE(node *target);
node *BINARY_SEARCH(double element);
void INORDER_TREE_WALK(node *pointer);
node *TREE_MINIMUM(node *pointer);
node *TREE_MAXIMUM(node *pointer);
void TRANSPLANT(node *transtree, node *postion);
};
其中我定义指找到的最小元件在一定的子树的函数:
BINARY::node *TREE_MINIMUM(BINARY::node *pointer)
{
BINARY::node *index=pointer;
while(index->left!=NULL)
index=index->left;
return index;
}
然后我调用此函数TREE_MINIMUM定义BINARY_DELETE功能时(未完还):
double BINARY::BINARY_DELETE(BINARY::node *target)
{
if(target->left==NULL) TRANSPLANT(target->right, target);
else if(target->right==NULL) TRANSPLANT(target->left, target);
else{
BINARY::node *pointer;
pointer=TREE_MINIMUM(target);
}
}
然而,编译器发送错误:
In function `BINARY::BINARY_DELETE(BINARY::node*)':
binary.cpp:(.text+0x3dc): undefined reference to `BINARY::TREE_MINIMUM(BINARY::node*)'
collect2: error: ld returned 1 exit status
,我尝试了几种方法来摆脱它,但没能成功。对于函数BINARY_MINIMUM,我声明了它并定义了它,我找不到我错过的东西,有人可以帮我解决吗?
请将您的代码缩进好。它使阅读更容易。向我们介绍一段文字是无益的! – Rook
@Rook对不起,我在这里只是不熟悉它,会更注重缩进:) – user106592