2017-04-19 30 views
0

私はこのコードを書いていますが、それが実行されるとき、それが実行されるときには、 BST T(arr, 10) という名前で、私たちの教授がそれを望んでいると私は誤りがあります。 Tの前には、しかし、私は私のコードトップを取り囲むように変更する必要があるか分からない。具体的に、教授はそれがプロジェクトの概要で次のように述べている: は "BST()デフォルトのコンストラクタは、空のツリーを作成バイナリ検索ツリー構築の問題

BST(int[], int) 

コンストラクタは、最初のパラメータは、順序付けられた要素の配列で、2番目のパラメータは数です。配列内の要素。ツリーはバランスのとれた方法で構築する必要があります " 私はデフォルトのコンストラクタを書くべきである方法についてちょっと混乱しています。何もせずに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

私はそれは私がそうしようとしたため、私もクラスの関数を作成していなかった実現しましたしかし、私は多くのエラーが発生しています。 –

関連する問題