二叉排序树(Binary Search Tree)是一种数据结构,它的每个节点都包含一个值和两个指针,分别指向左子树和右子树。左子树中的所有节点的值都小于父节点的值,而右子树中的所有节点的值都大于父节点的值。这样就可以通过比较节点值的大小来快速地查找、插入和删除节点。

下面是用 C++ 编写的二叉排序树插入函数:

#include <iostream>
using namespace std;

struct Node {
    int val;
    Node* left;
    Node* right;
    Node(int x) : val(x), left(NULL), right(NULL) {}
};

Node* insert(Node* root, int val) {
    if (root == NULL) {
        return new Node(val);
    }
    if (val < root->val) {
        root->left = insert(root->left, val);
    } else {
        root->right = insert(root->right, val);
    }
    return root;
}

int main() {
    Node* root = NULL;
    root = insert(root, 5);
    root = insert(root, 2);
    root = insert(root, 10);
    root = insert(root, 1);
    root = insert(root, 7);
    root = insert(root, 12);
    cout << root->left->val << endl; // 2
    cout << root->left->left->val << endl; // 1
    cout << root->right->val << endl; // 10
    cout << root->right->left->val << endl; // 7
    cout << root->right->right->val << endl; // 12
    return 0;
}

在上面的代码中,我们定义了一个结构体 Node,它表示二叉排序树的节点。每个节点包含一个值 val 和两个指针 leftright,分别指向左子树和右子树。我们还定义了一个 insert 函数,它用于向二叉排序树中插入一个节点。

首先,我们检查根节点是否为空。如果是空树,我们直接返回一个新节点。否则,我们比较要插入的节点值和根节点的值。如果小于根节点的值,就递归地插入到左子树中;否则,就递归地插入到右子树中。

最后,我们返回根节点。在主函数中,我们插入了一些节点,并打印出了一些节点的值,以验证插入操作是否正确。

这就是用 C++ 编写二叉排序树插入的方法。

用cpp写一个二叉排序树插入

原文地址: https://www.cveoy.top/t/topic/brYi 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录