数据结构之二叉树查询

二叉树之查询

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

前序查找

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地址

相关推荐
计算机小白一个15 分钟前
蓝桥杯 Java B 组之背包问题、最长递增子序列(LIS)
java·数据结构·蓝桥杯
卑微的小鬼1 小时前
数据库使用B+树的原因
数据结构·b树
cookies_s_s1 小时前
Linux--进程(进程虚拟地址空间、页表、进程控制、实现简易shell)
linux·运维·服务器·数据结构·c++·算法·哈希算法
醉城夜风~2 小时前
[数据结构]双链表详解
数据结构
gyeolhada3 小时前
2025蓝桥杯JAVA编程题练习Day5
java·数据结构·算法·蓝桥杯
阿巴~阿巴~3 小时前
多源 BFS 算法详解:从原理到实现,高效解决多源最短路问题
开发语言·数据结构·c++·算法·宽度优先
刃神太酷啦5 小时前
堆和priority_queue
数据结构·c++·蓝桥杯c++组
落羽的落羽5 小时前
【落羽的落羽 数据结构篇】栈和队列
c语言·数据结构
qy发大财6 小时前
分发糖果(力扣135)
数据结构·算法·leetcode
滴_咕噜咕噜6 小时前
C#基础总结:常用的数据结构
开发语言·数据结构·c#