Чтобы вставить узел в двоичное дерево поиска (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 по порядку для отображения элементов в порядке возрастания.