用cpp写一个二叉排序树插入
二叉排序树(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 和两个指针 left 和 right,分别指向左子树和右子树。我们还定义了一个 insert 函数,它用于向二叉排序树中插入一个节点。
首先,我们检查根节点是否为空。如果是空树,我们直接返回一个新节点。否则,我们比较要插入的节点值和根节点的值。如果小于根节点的值,就递归地插入到左子树中;否则,就递归地插入到右子树中。
最后,我们返回根节点。在主函数中,我们插入了一些节点,并打印出了一些节点的值,以验证插入操作是否正确。
这就是用 C++ 编写二叉排序树插入的方法。
原文地址: https://www.cveoy.top/t/topic/brYi 著作权归作者所有。请勿转载和采集!