c++如何创建二叉排序树并创建函数实行二叉排序树的查找
时间: 2024-01-03 14:44:25 浏览: 118
创建二叉排序树可以按照以下步骤进行:
1. 定义二叉树节点的数据结构,包括节点值、左右子节点指针;
2. 定义二叉树的数据结构,包括根节点指针;
3. 编写插入节点的函数,实现二叉排序树的创建;
4. 编写查找节点的函数,实现对二叉排序树的查找。
下面是一个示例代码:
```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* cur = root;
while (cur != NULL) {
if (val < cur->val) {
if (cur->left == NULL) {
cur->left = new TreeNode(val);
break;
}
cur = cur->left;
}
else {
if (cur->right == NULL) {
cur->right = new TreeNode(val);
break;
}
cur = cur->right;
}
}
}
// 查找节点
bool search(int val) {
TreeNode* cur = root;
while (cur != NULL) {
if (val == cur->val) {
return true;
}
else if (val < cur->val) {
cur = cur->left;
}
else {
cur = cur->right;
}
}
return false;
}
};
int main() {
BST bst;
// 插入节点
bst.insert(5);
bst.insert(3);
bst.insert(7);
bst.insert(1);
bst.insert(4);
bst.insert(6);
bst.insert(8);
// 查找节点
cout << bst.search(6) << endl; // 输出 1
cout << bst.search(2) << endl; // 输出 0
return 0;
}
```
在上述代码中,我们定义了一个 `BST` 类来管理二叉排序树,其中包括插入节点和查找节点的函数。在 `insert` 函数中,我们采用迭代的方式遍历二叉排序树,找到合适的位置插入新的节点。在 `search` 函数中,我们同样采用迭代的方式,查找二叉排序树中是否存在指定的节点。
阅读全文