构建二叉搜索树C++
时间: 2024-01-25 14:10:28 浏览: 28
以下是用C++构建二叉搜索树的示例代码:
```cpp
#include <iostream>
using namespace std;
// 定义二叉树节点结构
struct Node {
int key;
Node* left;
Node* right;
};
// 创建新节点
Node* createNode(int key) {
Node* newNode = new Node();
if (newNode != nullptr) {
newNode->key = key;
newNode->left = nullptr;
newNode->right = nullptr;
}
return newNode;
}
// 插入节点
Node* insertNode(Node* root, int key) {
// 如果根节点为空,直接创建新节点作为根节点
if (root == nullptr) {
return createNode(key);
}
// 如果插入的值小于根节点的值,递归插入左子树
if (key < root->key) {
root->left = insertNode(root->left, key);
}
// 如果插入的值大于等于根节点的值,递归插入右子树
else if (key >= root->key) {
root->right = insertNode(root->right, key);
}
return root;
}
// 中序遍历二叉搜索树
void inorderTraversal(Node* root) {
if (root != nullptr) {
inorderTraversal(root->left);
cout << root->key << " ";
inorderTraversal(root->right);
}
}
int main() {
Node* root = nullptr;
// 插入节点
root = insertNode(root, 50);
root = insertNode(root, 30);
root = insertNode(root