当前位置: 首页 > news >正文

数据结构之二叉树查询

二叉树之查询

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

前序查找

    /*** 前序查询*/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;}

中序查找

    /*** 中序查询*/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;}

后序查找

    /*** 后序查询*/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地址


http://www.mrgr.cn/news/31075.html

相关文章:

  • Android OpenGL ES详解——纹理:纹理过滤GL_NEAREST和GL_LINEAR的区别
  • C++开发基础之使用librabbitmq库实现RabbitMQ消息队列通信
  • 如何在vscode中安装git详细新手教程
  • Unity编辑器的高级扩展技术
  • 【C#设计模式(5)——原型模式(Prototype Pattern)】
  • 前端学习八股资料CSS(二)
  • 对接金蝶云星空调用即时库存信息查询API(附JAVA实现)
  • 3.MySQL库和表的操作
  • 一些线上常用排查问题的命令
  • 前端vue-ref与document.querySelector的对比
  • 一招搞定Nginx安装
  • Simapps新版上线:诚邀广大用户体验,参与有奖调查问卷
  • 计算机操作系统-进程控制面经
  • 影视会员充值api?接口对接需要做哪些准备工作?
  • Java设计模式——工厂方法模式(完整详解,附有代码+案例)
  • 从Huggingface下载数据集时添加正则表达式
  • 【环境踩坑系列】CentOS7 安装 MySQl 5.7.25
  • Python打包神器pyinstaller和tkinter图形化GUI界面
  • 使用ultralytics库微调 YOLO World 保持 Zero-Shot 能力
  • 101. 对称二叉树
  • 若依笔记(六):前后端token鉴权体系
  • AV1 Bitstream Decoding Process Specification--[7]: 语法结构语义-3
  • Shader Graph Create Node---Channel
  • 树莓派4B+UBUNTU20.04+静态ip+ssh配置
  • Node-red 某一时间范围内满足条件的数据只返回一次
  • Spring的IOC和AOP