二进制搜索树构造的麻烦

时间:2017-04-19 22:44:40

标签: c++ binary-search-tree default-constructor

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

1 个答案:

答案 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]);
 }