Как создать бинарное дерево в с++?

Пользователь

от maya , в категории: C/C++ , 8 месяцев назад

Как создать бинарное дерево в с++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

1 ответ

Пользователь

от cloyd , 6 месяцев назад

@maya 

Вот простой пример создания бинарного дерева на языке C++:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
#include <iostream>
using namespace std;

struct Node {
    int data;
    Node* left;
    Node* right;
};

Node* newNode(int data) {
    Node* node = new Node;
    node->data = data;
    node->left = NULL;
    node->right = NULL;
    return node;
}

int main() {
    Node* root = newNode(1);
    root->left = newNode(2);
    root->right = newNode(3);
    root->left->left = newNode(4);
    root->left->right = newNode(5);

    return 0;
}


Этот код создает бинарное дерево со следующей структурой:

1
2
3
     1
   /     2     3
 / 4   5


Функция newNode создает новый узел с заданным значением и нулевыми указателями на левое и правое поддеревья. Затем в функции main создается корневой узел с значением 1 и двумя дочерними узлами со значениями 2 и 3. Затем узел со значением 2 получает двух дочерних узлов со значениями 4 и 5.


Это простейший способ создания бинарного дерева, но на практике обычно используются алгоритмы вставки и удаления узлов, которые могут менять структуру дерева.