创建二叉树排序树、二叉树排序查找c++代码
时间: 2023-07-31 18:05:23 浏览: 99
用C++实现的二叉树和二叉查找树
4星 · 用户满意度95%
二叉排序树(Binary Search Tree,BST),也称为二叉查找树或二叉搜索树,是一种特殊的二叉树,它的左子树中的所有节点的键值小于根节点的键值,右子树中的所有节点的键值大于根节点的键值。以下是C++代码实现:
```c++
#include <iostream>
using namespace std;
struct TreeNode {
int val;
TreeNode* left;
TreeNode* right;
TreeNode(int x) : val(x), left(NULL), right(NULL) {}
};
class BST {
private:
TreeNode* root;
public:
BST() {
root = NULL;
}
void insert(int val) {
if (root == NULL) {
root = new TreeNode(val);
return;
}
TreeNode* node = root;
while (node != NULL) {
if (val < node->val) {
if (node->left == NULL) {
node->left = new TreeNode(val);
return;
} else {
node = node->left;
}
} else {
if (node->right == NULL) {
node->right = new TreeNode(val);
return;
} else {
node = node->right;
}
}
}
}
TreeNode* search(int val) {
TreeNode* node = root;
while (node != NULL) {
if (node->val == val) {
return node;
} else if (val < node->val) {
node = node->left;
} else {
node = node->right;
}
}
return NULL;
}
};
int main() {
BST bst;
bst.insert(5);
bst.insert(3);
bst.insert(7);
bst.insert(1);
bst.insert(9);
TreeNode* node = bst.search(7);
if (node != NULL) {
cout << "Found: " << node->val << endl;
} else {
cout << "Not Found" << endl;
}
return 0;
}
```
以上代码实现了二叉排序树的插入和查找功能。其中,insert()函数用于插入节点,search()函数用于查找节点。在main()函数中,首先创建一个BST对象,然后插入5、3、7、1、9这5个节点,最后查找值为7的节点。
阅读全文