如何二叉树里面查找一个数

简介: 如何二叉树里面查找一个数

一、在二叉树里面查找一个数主要是用到的是递归的思想,或者结构题指针思想


具体思路结合代码理解


二、代码如下

示例一:
int avl_search(AVLTree root, int value){
    if(root==NULL){
        printf("\nNO find the element\n")
    }
    else if(root->data==value)
        printf("%d",root->data);       //打印找到的数
    else if(value>root->data){
        printf("%d->",root->data);    //打印轨迹
        avl_search(root->rchild,value);  //递归
    }
    else {
        printf("%d->",root->data);   //打印轨迹
        avl_search(root->lchild, value);  //递归
    }
}
示例二:
    while(root!=NULL) {
        if (root->data == value){
            printf("%d", root->data);
            break;
        }
        else if (value > root->data){
            printf("%d->", root->data);
            root = root->rchild;   //传子树地址
        }
        else{
            printf("%d->", root->data);
            root = root->lchild;    //传子树地址
        }
    }
}


三、运行结果如下


找到69这个数


5d40afd3e4e74834a34fe8ef3b665553.png


四、总结


第一段代码:当函数进入第一个if 或者第一个else if ,则函数就会不断退出递归;

当函数进入第二个else if ,或者最后一个else时,则函数还在不断进入递归;


第二段代码:这段代码使用的是while和结构体指针传子树的思想,通过不断的判断直到找到那个数再退出。


欢迎交流


相关文章
|
6月前
|
人工智能 测试技术 Windows
【深度优先搜索】【树】【状态压缩】2791. 树中可以形成回文的路径数
【深度优先搜索】【树】【状态压缩】2791. 树中可以形成回文的路径数
|
6月前
二叉树查找值为x的结点、树的高度、第k层结点个数的代码实现
二叉树查找值为x的结点、树的高度、第k层结点个数的代码实现
|
11月前
|
算法 测试技术 C#
C++二分查找算法:查找和最小的 K 对数字
C++二分查找算法:查找和最小的 K 对数字
|
算法 C语言
【数据结构】二叉树的节点数,叶子数,第K层节点数,高度,查找x节点,判断是否为完全二叉树等方法【上】
文章目录 一、二叉数的结构体 二、构建二叉树,供后续测试使用 三、二叉树销毁 四、构建节点 五、二叉树的高度: 1.代码: 2.测试结果: 二叉树节点个数 1.代码: 2.测试结果:
|
算法 DataX C语言
【数据结构】二叉树的节点数,叶子数,第K层节点数,高度,查找x节点,判断是否为完全二叉树等方法【下】
六、二叉树叶子节点个数 1.代码: 2.测试结果: 七、二叉树第k层节点个数 1.代码: 2.测试结果: 八、二叉树查找值为x的节点 1.代码: 2.测试结果: 九、判断二叉树是否是完全二叉树 1.代码: 2.测试结果: 十、补充:队列代码 Queue.h Queue.c
数据结构实验之二叉树三:统计叶子数
数据结构实验之二叉树三:统计叶子数
|
C语言
代码实现求二叉树结点数和叶子结点数(C语言)
代码实现求二叉树结点数和叶子结点数(C语言)
540 0
代码实现求二叉树结点数和叶子结点数(C语言)
|
Python
Python实现统计二叉树叶子结点个数
Python实现统计二叉树叶子结点个数
219 0
|
算法
减治法实现插入排序,减治法实现二叉查找树(二叉搜索数,二叉排序数)的创建、插入与查找(含解析与代码实现)
减治法实现插入排序,减治法实现二叉查找树(二叉搜索数,二叉排序数)的创建、插入与查找(含解析与代码实现)
111 0
|
Python
python 递归和非递归实现 统计链表节点个数
python 递归和非递归实现 统计链表节点个数
84 0
python 递归和非递归实现 统计链表节点个数