Я сделал две функции: одну, чтобы найти и вернуть самый маленький ключ в красно-черном дереве, а другой возвращает указатель на конкретный узел с ключом этого узла в качестве входного. Эти функции отлично работают со всеми узлами, за исключением узлов с наивысшим ключом и наименьшим ключом. Программа перестает работать и дает предупреждение C4716. Ключи: int array [] = {50, 26, 45, 34, 23, 78, 84, 93, 14, 16, 100, 57, 62};Предупреждение C4715: не все пути управления возвращают значение C++
int Tree::findsmallest()
{
return findsmallestprivate(root);
}
int Tree::findsmallestprivate(node* ptr)
{
if (root != NULL)
{
if (ptr->left != NULL)
{
findsmallestprivate(ptr->left);
}
else
{
return ptr->key;
}
}
else
{
cout << "There was no tree" << endl;
return -1;
}
}
Tree::node* Tree::returnnode(int key)
{
return returnnodepri(key, root);
}
Tree::node* Tree::returnnodepri(int key, node* ptr)
{
if (ptr->key == key)
{
return ptr;
}
else if (ptr->key < key)
{
returnnodepri(key, ptr->right);
}
else if (ptr->key > key)
{
returnnodepri(key, ptr->left);
}
else
{
return NULL;
}
}
yup тот сработал .thanks! –