作成した一時ノードの値にアクセスしようとすると、バイナリ検索ツリーが作成されて例外が発生します。例外は、例外がスローされたことを示します:読み取りアクセス違反。 tempはnullptrでした。この例外のハンドラがある場合は、プログラムを安全に継続することができます。このエラーは、挿入関数内の最初のif文で発生します。バイナリ検索ツリーを作成しようとすると、読み取りアクセス違反例外が発生しました。一時的にnullptrでした。
#ifndef BINARYSEARCHTREE_H
#define BINARYSEARCHTREE_H
#include <iostream>
#include <stdlib.h>
using namespace std;
template<class T>
class BinarySearchTree {
public:
//Default Constructor
BinarySearchTree() {
root = NULL;
}
//Constructor with root value
BinarySearchTree(const T& rootItem) {
root->value = rootItem;
root->left = NULL;
root->right = NULL;
}
void insert(const T& item) {
Node<T> * temp = root;
bool loop = false;
while (loop == false) {
if (temp->value > item) {
temp = temp->getLeftChild();
}
else if (temp->value < item) {
temp = temp->getRightChild();
}
else if (temp->value == item) {
temp = temp->getRightChild();
}
else {
temp->value = item;
loop = true;
}
}
}
private:
Node<T> * root = new Node<T>;
};
#endif
は、 'ノード *ルート=新しいノード;'のためにコンパイルされたコードですか? –
これは、挿入機能まですべて実行されます。 – laneherby