在二叉排序树中查找指定的关键字,并在查找过程中输出查找过程中历经的节点函数
时间: 2023-07-15 21:15:00 浏览: 63
可以使用递归或迭代的方式实现二叉排序树的查找过程。以下是使用递归的实现方法,同时输出历经的节点:
```c++
// 定义二叉排序树的节点结构体
struct BSTNode {
int key; // 节点关键字
BSTNode *left; // 左子树指针
BSTNode *right; // 右子树指针
};
// 在二叉排序树中查找指定的关键字,并输出历经的节点
BSTNode* searchBST(BSTNode *root, int key) {
if (root == nullptr || root->key == key) {
return root;
}
if (key < root->key) {
cout << "访问节点 " << root->key << " 的左子树" << endl;
return searchBST(root->left, key);
} else {
cout << "访问节点 " << root->key << " 的右子树" << endl;
return searchBST(root->right, key);
}
}
```
示例调用:
```c++
BSTNode *root = ...; // 假设已经创建好一棵二叉排序树
int key = 5; // 要查找的关键字
BSTNode *result = searchBST(root, key);
if (result == nullptr) {
cout << "未找到关键字为 " << key << " 的节点" << endl;
} else {
cout << "找到关键字为 " << key << " 的节点" << endl;
}
```
这样就可以在查找过程中输出历经的节点。
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20210720083512.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)
![](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)
![](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)