2017-04-21 117 views
1

我认为这个错误告诉我,我的插入函数没有被声明,但据我所知我已经正确声明了它,并且它在我的类的公共部分中我想我应该可以在我的主要功能中使用它。我试图把它称为insert(12);,但它给了我错误:'插入'未在此范围内声明。错误:在此范围内未声明“函数”

class BST 
{ 
    public: 
     BST(); 
     BST(int* arr, int size); 
     void insert(int val); 
     void inOrderTraversal(); 
     void inOrderTraversal(node * Root); 

    private: 
     node * Root; 

}; 

void BST::insert(int val) 
{ 
    node* temp = new node(); 
    temp->value = val; 

    if(Root == NULL) { 
     Root = temp; 
     return; 
    } 

    node* current; 
    current = Root; 
    node* parent; 
    parent = Root; 
    current = (temp->value < current->value) ? (current->Left) : (current->Right); 

    while(current != NULL) 
    { 
     parent = current; 
     current = (temp->value < current->value) ? (current->Left) : (current->Right); 
    } 

    if(temp->value < parent->value) { 
     parent->Left = temp; 
    } 

    if(temp->value > parent->value) { 
     parent->Right = temp; 
    } 
} 
+0

你在哪里打电话吗? – tkausl

+0

在您的'main()'函数中添加部件,其中包含'insert(12)'到您的文章。 –

回答

2

如果你只是写insert(12);,那么你可能需要创建BST类的实例和访问它作为一个成员函数:

BST tree; 
tree.insert(12); 
+0

杜,谢谢。 –

+0

@Garrett如果这解决了您的问题,请将其标记为,谢谢。 – nitronoid