二叉树递归查找函数代码C语言
时间: 2024-10-18 19:21:12 浏览: 43
在C语言中,二叉搜索树的递归查找函数通常用于在一个已排序的二叉树中查找特定元素。假设我们有一个结构`Node`表示二叉树节点,包含`key`, `value`, 和指向左右子节点的指针`left`和`right`,那么查找函数可以像这样编写:
```c
// 假设 Node 结构体如下:
typedef struct Node {
int key;
int value;
struct Node* left;
struct Node* right;
} Node;
// 递归查找函数
int search(Node* root, int target) {
if (root == NULL || root->key == target) { // 如果根为空或找到目标值
return root ? root->value : -1; // 返回值(存在则返回,不存在返回-1)
}
// 否则根据目标值大于还是小于当前节点的值来决定往左还是右查找
if (target < root->key) {
return search(root->left, target); // 左子树递归查找
} else {
return search(root->right, target); // 右子树递归查找
}
}
```
在这个函数中,如果目标值等于当前节点的值,就找到了并返回对应的值;如果目标值小于当前值,则在左子树中继续查找;如果目标值大于当前值,则在右子树中查找。
阅读全文