我已经编写了这段代码,但是当它运行时它没有按照它应该的方式运行
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 :(得分: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]);
}