二叉搜索树c++代码
时间: 2024-01-07 09:23:12 浏览: 82
以下是一个简单的二叉搜索树的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;
int keys[] = {50, 30, 70, 20, 40, 60, 80};
// 依次插入节点
for (int key : keys) {
root = insertNode(root, key);
}
// 中序遍历二叉搜索树
cout << "中序遍历结果:";
inorderTraversal(root);
cout << endl;
return 0;
}
```
阅读全文
相关推荐
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)