类不知道Print()方法

时间:2011-10-08 10:45:44

标签: c++

我正在尝试实现二叉搜索树。这是我到目前为止的代码:

#include <iostream>
using namespace std;
class BST{
    public:
        int n,*v,vn;
        struct node{
            int val;
            node *left,*right;
            node (int v){ val=v; left=right=0;}
        };
        node *root;

        node *rinsert(node *p,int t){
            if (p==0){
                p=new node(t);
                n++;
            }
            else if (t<p->val){
                p->left=rinsert(p->left,t);

            }
            else if (t>p->val){
                p->right=rinsert(p->right,t);
            }

            return p;
        }

        void traverse(node *p){
            if (p==0) return;
            traverse(p->left);
            v[vn++]=p->val;
            traverse(p->right);

        }
        void print(node *p){
            if (p==NULL) return;
            cout<<p->val;
            traverse(p->left);
            traverse (p->right);
        }

    public:
        BST(int maxelms,int maxval){ root=0;n=0;}
        int size(){ return n;}
        void insert(int v){ root=rinsert(root,v);  }
        void report(int *x){ v=x;vn=0;traverse(root);}
} ;

int main(){
    struct node *root;
    BST bt(12,25);
    bt.insert(12);
    bt.insert(10);
    bt.insert(25);
    bt.insert(7);
    bt.insert(11);
    bt.insert(8);
    bt.insert(4);
    bt.insert(3);
    bt.insert(20);
    bt.insert(23);
    bt.insert(24);
    bt.insert(1);
    bt.Print();

    return 0;
}

它无法编译:问题是该类的Print()方法未知:

1>c:\users\...\bst\bst.cpp(54): error `C3861: 'Print': identifier not found`

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:5)

C ++区分大小写。您键入了Print但该方法名为print。当然,您需要将该方法传递给节点指针。