给定n个数据,帮我建立一个二叉搜索树,给出C++代码
时间: 2024-10-13 15:17:44 浏览: 13
在C++中,我们可以使用递归的方式来创建一个二叉搜索树。首先,我们需要一个节点结构体,然后定义一个函数插入节点并保持树的搜索特性。这里是一个简单的例子:
```cpp
// 定义节点结构
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
// 插入节点到二叉搜索树的函数
TreeNode* insertIntoBST(TreeNode* root, int val) {
if (root == nullptr) {
return new TreeNode(val);
}
if (val < root->val) {
root->left = insertIntoBST(root->left, val);
} else {
root->right = insertIntoBST(root->right, val);
}
return root;
}
// 创建二叉搜索树
vector<int> data; // 假设data已经包含n个整数
TreeNode* buildBST(vector<int>& nums) {
if (nums.empty()) {
return nullptr;
}
return insertIntoBST(new TreeNode(nums[0]), nums[0]);
}
// 示例如何使用
int main() {
vector<int> numbers = {8, 3, 10, 1, 6, 14, 4, 7, 13};
TreeNode* bstRoot = buildBST(numbers);
// ... 其他操作,比如遍历、查找等
return 0;
}
```
在这个代码中,`buildBST` 函数接收一个整数向量,并通过`insertIntoBST`函数将元素逐个插入形成二叉搜索树。
阅读全文