Print()方法不为类所知

Print() method is not known for class

本文关键字:方法 Print      更新时间:2023-10-16

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

#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...bstbst.cpp(54): error `C3861: 'Print': identifier not found`

我该如何解决这个问题?

c++区分大小写。您输入的是Print,但方法称为print。当然,您还需要向该方法传递一个节点指针。