我有以下代码:二叉树方法
#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;}
void Print(node *p){
cout<<p->val;
if (p->left){
Print(p->left);
}
else if(p->right){
Print(p->right);
}
}
}; 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(){
Print(root);
}
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(){
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);
return 0;
}
编译器说,Print()
是不确定的。为什么?我已经在课堂上宣布了它。
我认为在功能“打印”功能“打印”不能访问没有给结构名称。 – 2011-10-07 16:42:24
如果你有一个你不明白的编译器错误信息,**把整个错误信息放到你的问题**中(并且在源代码中指出它抱怨的那一行)。 –