数据结构之二叉树查询

二叉树之查询

二叉树的查询是建立遍历的基础上更进一步的对比查询,下面分别从前序、中序、后续三种方法中查询对应的节点。

前序查找

java 复制代码
    /**
     * 前序查询
     */
    public Person preSelectById(Integer id) {
        Person person = null;
        if (this.data.getId().equals(id)) {
            person = this.data;
        }
        if (Objects.isNull(person) && Objects.nonNull(this.left)) {
            person = this.left.preSelectById(id);
        }
        if (Objects.isNull(person) && Objects.nonNull(this.right)) {
            person = this.right.preSelectById(id);
        }
        return person;
    }

中序查找

java 复制代码
    /**
     * 中序查询
     */
    public Person midSelectById(Integer id) {
        Person person = null;
        if (Objects.isNull(person) && Objects.nonNull(this.left)) {
            person = this.left.preSelectById(id);
        }
        if (this.data.getId().equals(id)) {
            person = this.data;
        }
        if (Objects.isNull(person) && Objects.nonNull(this.right)) {
            person = this.right.preSelectById(id);
        }
        return person;
    }

后序查找

java 复制代码
    /**
     * 后序查询
     */
    public Person postSelectById(Integer id) {
        Person person = null;
        if (Objects.isNull(person) && Objects.nonNull(this.left)) {
            person = this.left.preSelectById(id);
        }
        if (Objects.isNull(person) && Objects.nonNull(this.right)) {
            person = this.right.preSelectById(id);
        }
        if (this.data.getId().equals(id)) {
            person = this.data;
        }
        return person;
    }

源码与测试案例

gitee地址

相关推荐
Vect__6 分钟前
从底层到上层的“外挂”:deque、stack、queue、priority_queue 全面拆解
数据结构·c++
玖釉-1 小时前
三维模型数据结构与存储方式解析
数据结构·算法·图形渲染
努力努力再努力wz1 小时前
【C++进阶系列】:万字详解特殊类以及设计模式
java·linux·运维·开发语言·数据结构·c++·设计模式
青岛少儿编程-王老师11 小时前
CCF编程能力等级认证GESP—C++7级—20250927
数据结构·c++·算法
nanaki5021314 小时前
数据结构(3) ----------- 栈、队列
数据结构
一只小透明啊啊啊啊14 小时前
b树,b+树,红黑树
数据结构·b树·b+树
Mingze031414 小时前
C语言四大排序算法实战
c语言·数据结构·学习·算法·排序算法
程序员东岸14 小时前
学完顺序表后,用 C 语言写了一个通讯录
数据结构·笔记·学习
独自破碎E15 小时前
Leetcode2166-设计位集
java·数据结构·算法
Cikiss15 小时前
LeetCode160.相交链表【最通俗易懂版双指针】
java·数据结构·算法·链表