二叉排序树的查找,输出查找次数
时间: 2023-10-25 08:15:18 浏览: 98
二叉排序树的查找可以采用递归或非递归的方式实现,以下是一个采用递归方式的示例代码:
```C++
int BST_Search(BiTree T, int key, int count) {
if (!T) { // 树为空,未找到
return -1;
} else if (key == T->data) { // 找到了
return count;
} else if (key < T->data) { // 在左子树中查找
return BST_Search(T->lchild, key, count+1);
} else { // 在右子树中查找
return BST_Search(T->rchild, key, count+1);
}
}
```
其中,`T` 表示二叉排序树的根节点,`key` 表示要查找的关键字,`count` 表示查找次数(初始值为1)。如果在树中找到了 `key`,则返回查找次数,否则返回-1表示未找到。
调用该函数的代码如下:
```C++
int count = 1;
int result = BST_Search(root, key, count);
if (result == -1) {
cout << "未找到" << endl;
} else {
cout << "查找成功,查找次数为:" << result << endl;
}
```
其中,`root` 表示二叉排序树的根节点,`key` 表示要查找的关键字。程序输出的结果为查找次数。
阅读全文