数据结构之二叉树查询

二叉树之查询

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

前序查找

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

相关推荐
业精于勤的牙16 分钟前
小张刷题计划(二)
数据结构·算法
亮子AI1 小时前
【Tiptap】如何使用 ordered list?
数据结构·list·tiptap
南莺莺1 小时前
二叉排序树的创建和基本操作---C++实现
数据结构·c++·算法··二叉排序树
仰泳的熊猫2 小时前
1061 Dating
数据结构·c++·算法·pat考试
Fcy6482 小时前
二叉搜索树(C++实现)
开发语言·数据结构·c++·二叉搜索树
CoderYanger2 小时前
A.每日一题——1523. 在区间范围内统计奇数数目
java·数据结构·算法·leetcode·职场和发展
surtr12 小时前
Round 1019(div2) CD
数据结构·c++·算法·贪心算法·stl
冰西瓜6002 小时前
分治(二)算法设计与分析 国科大
数据结构·算法
加藤不太惠3 小时前
【无标题】
java·数据结构·算法
夏乌_Wx3 小时前
练题100天——DAY22:数字拼接+只出现一次的数字
java·数据结构·算法