Я изучал, как создавать двоичные деревья поиска, и я столкнулся с проблемой при попытке создать свою собственную. Для создания дерева я должен использовать следующую частную структуру. Каждый пример, который я просматривал, использует указатели слева и справа, указывающие на структуру, и я должен использовать левый и правый указатели, указывающие на мой класс шаблонов. Я пытался выяснить, как написать функцию вставки для добавления нового узла в мое дерево, но я все время сталкиваюсь с проблемами из-за настройки этих двух указателей. Кто-нибудь знает, как заставить его работать с этими двумя указателями ниже?Двоичное дерево поиска: проблема с функцией вставки
private:
struct BinaryNode
{
Comparable element;
BinarySearchTree<Comparable> *left;
BinarySearchTree<Comparable> *right;
};
BinaryNode *root;
};
Это мой конструктор
BinarySearchTree<Comparable>::BinarySearchTree() {
BinaryNode *temp;
temp = new BinaryNode;
temp->left= NULL;
temp->right= NULL;
root = temp;
}
Помогает ли она вообще предположить, что создание нового узла бессмысленно * до тех пор, пока есть данные для вставки * ?? То есть корневой указатель вашего дерева должен быть «nullptr», когда он пуст. – WhozCraig