数据结构之二叉树查询

二叉树之查询

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

前序查找

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

相关推荐
<但凡.2 小时前
C++修炼:list模拟实现
开发语言·数据结构·c++
敲代码的瓦龙3 小时前
C++?动态内存管理!!!
c语言·开发语言·数据结构·c++·后端
Ronin3053 小时前
【C++】13.list的模拟实现
开发语言·数据结构·c++·list
序属秋秋秋3 小时前
《数据结构初阶》【顺序表 + 单链表 + 双向链表】
c语言·数据结构·笔记·链表
无敌的牛4 小时前
AVL树的介绍与学习
数据结构·学习
想不明白的过度思考者5 小时前
初识数据结构——二叉树从基础概念到实践应用
数据结构·二叉树
Brookty6 小时前
【数据结构】哈希表
数据结构·算法·哈希算法·散列表
Dovis(誓平步青云)7 小时前
【数据结构】·励志大厂版(复习+刷题):二叉树
c语言·数据结构·经验分享·笔记·学习·算法·学习方法
越城7 小时前
算法效率的钥匙:从大O看复杂度计算 —— C语言数据结构第一讲
c语言·开发语言·数据结构·算法
姜行运7 小时前
数据结构【堆和链式结构】
数据结构·算法·c#