假设bt是一棵二叉排序树的根结点指针,请写一算法在此二叉排序树中查找x,若存在输出”查找成功”。函数原型如下: void Found(BTree *bt,int x) 其中指针bt是指向二叉排序树的根结点。
时间: 2023-12-03 16:44:48 浏览: 77
数据结构实验报告-树-求二叉树某结点在先序、中序、后序遍历中的访问次序-实验内容与要求.docx
5星 · 资源好评率100%
算法如下:
1. 如果二叉排序树为空,直接返回。
2. 如果当前结点的值等于x,说明找到了,输出“查找成功”并返回。
3. 如果当前结点的值大于x,说明x在当前结点的左子树中,递归调用Found函数,在左子树中查找x。
4. 如果当前结点的值小于x,说明x在当前结点的右子树中,递归调用Found函数,在右子树中查找x。
代码如下:
```c
void Found(BTree *bt, int x) {
if (bt == NULL) {
return;
}
if (bt->data == x) {
printf("查找成功");
return;
} else if (bt->data > x) {
Found(bt->left, x);
} else {
Found(bt->right, x);
}
}
```
阅读全文