2017-04-19 53 views
0

我有这样的代码,但是写它不是演戏的方式应该,当它运行作为 BST T(arr, 10) ,我们的教授如何希望它是,我得到一个错误,应该有一个;之前T,但我不知道我需要如何改变我的代码顶部包含。具体来说,教授也有它的工程概况说明是这样的: “BST()默认的构造方法,创建一个空的树麻烦与二叉搜索树建设

BST(int[], int) 

构造函数,第一个参数是元素的有序排列,第二个参数是多少。这个树应该以平衡的方式构建“ 我对于如何编写我的默认构造函数也有点困惑,我应该简单地编写一个没有任何东西传递给它的代码:void BST()构造和空树? 这是我的构造函数。

void BST(int * arr, int size) 
{ 
    node * Root = NULL; 
    for(int i = 0; i < size; i++) 
     insert(&Root, arr[i]); 
} 

回答

0

构造器 构造函数将有完全相同的名称作为类,它不具有任何返回类型可言,甚至没有空隙。

默认构造函数 默认构造函数是一个构造函数,它可以不带任何参数被调用。默认的构造函数的可能的定义可以像:

BST::BST() 
{ 
    node * Root = NULL; 
} 

带参数的构造可以像:

BST::BST(int * arr, int size) 
{ 
    node * Root = NULL; 
    for(int i = 0; i < size; i++) 
     insert(&Root, arr[i]); 
} 
+0

我意识到自己甚至都没有创建的类函数,所以我试图这样做但我收到很多错误。 –