二叉搜索树

时间:2010-07-22 09:52:04

标签: c++

我正在尝试实现二叉搜索树

 #include <iostream>
    using namespace std;
     class BST{
     private :
          int v,*n,vn;
          struct  node{
              int val;
              node *left,*right;
              node(int i){  val=i; 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);
          }





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

     };


     int main(){


          return 0;
     }

但是这个代码有一些bug,如果有人运行这段代码会看到这个错误请帮我这个代码有什么问题?

1 个答案:

答案 0 :(得分:1)

  

v [VN ++] = P-&GT; VAL;

vint(不是整数数组),因此v[vn++]在语法上不正确。

也许你想在顺序遍历期间打印节点中的值。