Бинарное дерево, заполнение элементами из массива и вывод на экран корня дерева, элементов идущих по левым ветвям, начиная с корня
Создать бинарное дерево на языке программирования С++ и случайным образом заполнить его значениями из массива mass[4,14,5,76,1,9,13,66]. Вывести на экран корень дерева и вывести на экран все элементы дерева идущие по левым ветвям, начиная с корня. Помогите понять что не так, что нужно исправить (вместо элементов дерева идущим по левым ветвям, программа выводит на экран "1" )
#include <iostream>
#include <cstdlib>
#define NULL 0
using namespace std;
struct Node {
int value;
Node* left;
Node* right;
};
Node* createNode(int value) {
Node* node = new Node;
node->value = value;
node->left = NULL;
node->right = NULL;
return node;
}
void addNode(Node*& root, int value) {
if (root == NULL) {
root = createNode(value);
}
else if (value < root->value)
{
addNode(root->left, value);
}
else {
addNode(root->right, value);
}
}
void printLeftNodes(Node* root) {
if (root == NULL) {
return;
}
cout << root->value << " ";
if (root->left != NULL) {
printLeftNodes(root->left);
}
}
int main() {
int mass[] = { 4, 14, 5, 76, 1, 9, 13, 66 };
int size = sizeof(mass) / sizeof(int);
Node* root = NULL;
for (int i = 0; i < size; i++)
{
addNode(root, mass[i]);
}
cout << "Корень дерева: " << root->value << endl;
cout << "Элементы дерева, идущие по левым ветвям, начиная с корня: ";
printLeftNodes(root->left);
cout << endl;
return 0;
}