二叉排序树c++代码
时间: 2023-09-20 18:14:54 浏览: 95
以下是一个简单的二叉排序树的C++代码示例:
```cpp
#include <iostream>
using namespace std;
struct Node {
int key;
Node* left;
Node* right;
};
Node* insert(Node* root, int key) {
if (root == nullptr) {
Node* newNode = new Node;
newNode->key = key;
newNode->left = nullptr;
newNode->right = nullptr;
return newNode;
}
if (key < root->key) {
root->left = insert(root->left, key);
} else if (key > root->key) {
root->right = insert(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[] = {8, 3, 10, 1, 6, 14, 4, 7, 13};
int numKeys = sizeof(keys) / sizeof(keys[0]);
for (int i = 0; i < numKeys; ++i) {
root = insert(root, keys[i]);
}
cout << "中序遍历结果:" << endl;
inorderTraversal(root);
return 0;
}
```
这段代码定义了一个 `Node` 结构体表示二叉排序树的节点,其中包含键值和左右子节点的指针。`insert` 函数用于向二叉排序树中插入新的节点,根据键值的大小比较决定插入到左子树还是右子树。`inorderTraversal` 函数实现了中序遍历二叉排序树,打印出节点的键值。
在示例中,我们创建了一个二叉排序树,并通过中序遍历打印出节点的键值。输出结果为:1 3 4 6 7 8 10 13 14。
阅读全文