2011-10-08 132 views
1

已知我正在嘗試實現二叉搜索樹。下面是代碼我迄今:打印()方法不爲類

#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` 

我該如何解決這個問題?

+2

如果您已經期望降低成本,您爲什麼不花費一點努力來問一個好問題? – Joey

+0

C++區分大小寫。該方法的名稱爲「print」,但最後稱爲「Print」。 – Dirk

+0

它正在訓練@Joey它不是在玩,我需要完成這個任務 –

回答

5

C++區分大小寫。您鍵入Print,但該方法被稱爲print。而且,當然,您需要將該方法傳遞給節點指針。