我正在尝试实现二叉搜索树
#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,如果有人运行这段代码会看到这个错误请帮我这个代码有什么问题?
答案 0 :(得分:1)
v [VN ++] = P-&GT; VAL;
v
是int
(不是整数数组),因此v[vn++]
在语法上不正确。
也许你想在顺序遍历期间打印节点中的值。