二叉排序树算法实现C++
时间: 2023-12-31 19:24:59 浏览: 112
以下是一个用C++实现的二叉排序树算法的示例:
```cpp
#include <iostream>
using namespace std;
// 树节点类定义
class TNode {
public:
int data;
TNode* left, * right;
TNode(int d) :left(nullptr), right(nullptr), data(d) {}
TNode() :left(nullptr), right(nullptr) {}
};
// 二叉排序树类定义
class BinarySearchTree {
private:
TNode* root;
// 插入节点
TNode* insertNode(TNode* node, int value) {
if (node == nullptr) {
return new TNode(value);
}
if (value < node->data) {
node->left = insertNode(node->left, value);
}
else if (value > node->data) {
node->right = insertNode(node->right, value);
}
return node;
}
// 中序遍历
void inorderTraversal(TNode* node) {
if (node != nullptr) {
inorderTraversal(node->left);
cout << node->data << " ";
inorderTraversal(node->right);
}
}
public:
BinarySearchTree() :root(nullptr) {}
// 插入节点
void insert(int value) {
root = insertNode(root, value);
}
// 中序遍历
void inorder() {
inorderTraversal(root);
}
};
int main() {
BinarySearchTree bst;
// 插入节点
bst.insert(50);
bst.insert(30);
bst.insert(20);
bst.insert(40);
bst.insert(70);
bst.insert(60);
bst.insert(80);
// 中序遍历
cout << "Inorder traversal of the binary search tree: ";
bst.inorder();
cout << endl;
return 0;
}
```
阅读全文