Вставка двоичного дерева поиска (BST) в C++: реализация с примером

Чтобы вставить узел в двоичное дерево поиска (BST) с помощью C++, вы можете использовать несколько методов. Вот пример реализации:

#include <iostream>
using namespace std;
struct Node {
    int data;
    Node* left;
    Node* right;
};
Node* createNode(int value) {
    Node* newNode = new Node();
    if (!newNode) {
        cout << "Memory error!\n";
        return nullptr;
    }
    newNode->data = value;
    newNode->left = newNode->right = nullptr;
    return newNode;
}
Node* insertNode(Node* root, int value) {
    if (root == nullptr) {
        return createNode(value);
    }
    if (value < root->data) {
        root->left = insertNode(root->left, value);
    } else if (value > root->data) {
        root->right = insertNode(root->right, value);
    }
    return root;
}
void inorderTraversal(Node* root) {
    if (root == nullptr) {
        return;
    }
    inorderTraversal(root->left);
    cout << root->data << " ";
    inorderTraversal(root->right);
}
int main() {
    Node* root = nullptr;
    root = insertNode(root, 50);
    insertNode(root, 30);
    insertNode(root, 20);
    insertNode(root, 40);
    insertNode(root, 70);
    insertNode(root, 60);
    insertNode(root, 80);
    cout << "Inorder traversal of the BST: ";
    inorderTraversal(root);
    return 0;
}

Этот код демонстрирует вставку узлов в BST. Функция createNodeсоздает новый узел, а функция insertNodeрекурсивно вставляет узел в BST на основе его значения. Функция inorderTraversalвыполняет обход BST по порядку для отображения элементов в порядке возрастания.