テンプレートを使用してバイナリ検索ツリー (略して BST) を作成しようとしています。
BST の新しいインスタンスを作成しようとすると、予期しないエラーが発生します。ポインターを最小限に抑えたいので、解決策にポインターが含まれていないことを願っています。
今のところ私は持っています:
template <typename Type>
class BST { // The binary search tree containing nodes
private:
BSTNode<Type> *root; // Has reference to root node
public:
BST ();
bool add (int, Type);
};
ノードタイプ:
編集:コードを切り取ってテキストを邪魔しないようにするときに、コンストラクターを忘れていましたが、追加されました
template <typename Type>
class BSTNode { // Binary Search Tree nodes
private:
int key; // we search by key, no matter what type of data we have
Type data;
BSTNode *left;
BSTNode *right;
public:
BSTNode (int, Type&);
bool add (int, Type);
};
EDIT2:これが実際のコンストラクターです
template <typename Type>
BSTNode<Type>::BSTNode (int initKey, Type &initData) {
this->key = initKey;
this->data = initData;
this->left = NULL;
this->right = NULL;
}
何かが機能するかどうか、または機能しないかどうかを試してテストしたい
BSTNode<int> data = new BSTNode (key, 10);
そして、次のようになります: BSTNode の前に型指定子が必要です。何が間違っているのかわかりませんが、データをポインターとして使用する必要がないことを願っています。
BSTNode<int> data = new BSTNode<int> (key, 10);
また、機能しない、そう信じているようで、< int >
一致< & int>
しない