корень передается функции Print, чьи левые и правые значения равны нулю. но дело в том, что если начать просматривать отладчик со строки for (size_t i = 0; i value) {
root->lhs = Push(root->lhs, new_value);
}
else if (new_value > root->value) {
root->rhs = Push(root->rhs, new_value);
}
return root;
}
void SetTreeDepth() {
std::cout 0) {
tree_depth_ = std::stoi(tmp);
return;
}
else {
ERROR_HINT("A natural number is expected.");
}
} while (true);
}
Type GetTreeDepth() const {
return tree_depth_;
}
void Print(Node* root) {
if (root == nullptr) {
return;
}
Print(root->lhs);
std::cout value rhs);
}
};
int main() {
setlocale(LC_ALL, "RUS");
BinaryTree tree;
tree.SetTreeDepth();
for (size_t i = 0; i < tree.GetTreeDepth(); ++i) {
tree.SetRoot(tree.Push(tree.GetRoot(), GetRandomNum(0, 99)));
}
tree.Print(tree.GetRoot());
return 0;
}
в функции Print root имеет только значение корня дерева, а левый и правый потомки по какой-то причине имеют значение NULL.
void Print(Node* root) {
if (root == nullptr) {
return;
}
Print(root->lhs);
std::cout value rhs);
}
Подробнее здесь: https://stackoverflow.com/questions/784 ... ee-console