一网打尽二叉树系列

前言

算法是计算机软件的基础,常见算法是软件开发的核心基本功,今年打算深入学习一些算法,记录一些算法理论以及最佳实践,希望可以坚持下去,关注我,我们一起学习,增强我们的基本功。

一、二叉树定义

二叉树是一种数据结构,每个树节点的子节点最大数量是2。

二、二叉树分类

满二叉树: 二叉树上,除了叶子结点的子节点(度)为0,其他节点子节点(度)都是2。

完全二叉树: 二叉树上,除了最下面一层外,每一层的节点都被填满,且最后一层的节点都集中在左侧,也就是最下面一层节点是从左到右连续的。

二叉搜索树:二叉搜索树是每个节点必须比左节点大,比右节点数值小。这样的特性使二叉搜索树是有序的。

二叉搜索树可能出现不平衡的情况,最坏的情况导致二叉树退化为链表

平衡二叉搜索树:由于二叉搜索树会出现不平衡,所以有了平衡二叉树,在平衡二叉树中,任意节点的左子树和右子树的高度差不能超过1

三、二叉树搜索(遍历)方式

二叉树使用场景非常多的就是需要遍历树,从树上查找目标数据,比如Mysql的索引数据结构就是树,查找数据都需要从树中查找。

递归遍历

递归遍历分为前序,中序,后序遍历,怎么理解呢?是指访问父节点的顺序,也是访问当前节点的顺序。比如前序遍历,就是先访问当前节点(父节点),再访问左节点最后访问右节点

前序遍历:遍历顺序分别是父节点,左节点,右节点。

前序遍历遍历结果:9、4、1、7、11

中序遍历:遍历顺序分别是左节点,父节点,右节点。

中序遍历遍历结果:1、4、7、9、11

后序遍历:遍历顺序分别是左节点,右节点,父节点。

后序遍历遍历结果:1、7、4、11、9

  • 非递归遍历

非递归遍历树是使用循环的方式遍历。

总结

本文分析了二叉树各个类型的特点,我们可以快速全面了解二叉树,二叉树在我们技术底层框架使用比较多,比如mysql,了解这些基础知识对于二叉树的深入应用是有帮助的。

关注我,我们一起学习技术干货。

相关推荐
gogoMark1 分钟前
FaceFusion 技术深度剖析:核心算法与实现机制揭秘
算法
Java~~35 分钟前
山东大学软件学院项目实训-基于大模型的模拟面试系统-面试对话标题自动总结
面试
前端付豪1 小时前
汇丰实时风控数据流揭秘:Kafka + Flink + CEP 规则引擎全链路实战
前端·后端·架构
倔强的石头_1 小时前
【数据结构与算法 经典例题】使用队列实现栈(图文详解)
后端·算法
猩猩程序员1 小时前
Rust 中文搜索实践:Meilisearch v1.15 更新与实战指南
后端
Hanbox1 小时前
FastAPI+Django构建全栈性能怪兽
后端
LucianaiB1 小时前
智能体还能配置MCP?手把手用百宝箱打造一个音途智游,让旅游加入语音
后端
黑色的山岗在沉睡1 小时前
P1216 [IOI 1994] 数字三角形 Number Triangles
算法·动态规划
海风极客1 小时前
《Go小技巧&易错点100例》第三十五篇
开发语言·后端·golang
武子康1 小时前
大数据-10-HDFS集群 Java实现MapReduce WordCount计算 Hadoop序列化 编写Mapper和Reducer和Driver 附带PO
大数据·后端