二叉树(源码+lw+部署文档+讲解等)

文章目录

前言

🌞博主介绍:✌全网粉丝15W+,CSDN特邀作者、211毕业、高级全栈开发程序员、大厂多年工作经验、码云/掘金/华为云/阿里云/InfoQ/StackOverflow/github等平台优质作者、专注于Java、小程序技术领域和毕业项目实战,以及程序定制化开发、全栈讲解、就业辅导✌🌞

👇🏻 精彩专栏 推荐订阅👇🏻
2023-2024年最值得选的微信小程序毕业设计选题大全:100个热门选题推荐✅

2023-2024年最值得选的Java毕业设计选题大全:500个热门选题推荐✅

Java精品实战案例《500套》

微信小程序项目精品案例《500套》

💯文末获取源码+数据库💯
感兴趣的可以先收藏起来,还有大家在毕设选题,项目以及论文编写等相关问题都可以给我留言咨询,希望帮助更多的人

二叉树

性质

1, 我们把树中结点的第一个子结点作为这个结点左结点

2, 我们把一个结点右兄弟结点, 作为右结点

通过上述操作可以将普通的树转换为二叉树

二叉树中的节点最多有两个子节点,左右子节点有严格划分,次序不能颠倒

特点:

二叉树在第i层至多有2的(i-1)次方个节点

层次为k的二叉树至多有2的k次方 - 1个节点

对任何一颗二叉树T,如果其叶子节点数为n0 , 度为2的节点数为n2,则n0 = n2 + 1

具有n个节点的完全二叉树,树的高度为log2n (向下取整)。

如果对一颗有n个结点的完全二叉树的结点按层序从1开始编号,则对任意一结点有:

如果编号i为1,则该结点是二叉树的根;

如果编号i > 1,则其双亲结点编号为 parent(i) = i/2,

若 2i > n 则该结点没有左孩子,否则其左孩子的编号为 2i,

若 2i + 1 > n 则该结点没有右孩子,否则其右孩子的编号为 2i + 1。

二叉树的遍历

广度遍历:

深度遍历:

对于一个树深度遍历右6种情况, 如果限定先左后右的话还剩3中

根 左 右 --> 先序/先根 遍历

左 根 右 --> 中序/中根 遍历

左 右 根 --> 后序/后根 遍历

运用的是递归的分治思想,将每个节点的划分为左子树和右子树

二叉树的建树

前序和后序确定的是根节点的位置,中序用来划分左右子树

所以只有前序+中序或者中序+后序才能建树

二叉搜索树

每一个节点的左子节点都比他小,右子节点都比他大

自平衡的二叉搜索树

在二叉搜索树的基础上每一个节点都满足左右子树的高度相差不超过1

设计的原因是因为二叉树在频繁的添加和删除的过程中造成树变得稀疏,于是可以通过旋转的方式来改进

红黑树

根节点可以任意变换颜色,没有连续的红色,黑高平衡

通过旋转来保证黑高平衡,先左旋再右旋,先右旋再左旋,分情况

源码获取

有疑问私信询问我即可~
大家点赞、收藏、关注、评论啦
精彩专栏推荐订阅:在下方专栏👇🏻
Java精品实战案例《500套》
微信小程序项目精品案例《500套》

相关推荐
apocelipes4 小时前
golang unique包和字符串内部化
java·python·性能优化·golang
Full Stack Developme4 小时前
java.text 包详解
java·开发语言·python
哆啦A梦15885 小时前
搜索页面布局
前端·vue.js·node.js
_院长大人_5 小时前
el-table-column show-overflow-tooltip 只能显示纯文本,无法渲染 <p> 标签
前端·javascript·vue.js
SevgiliD5 小时前
el-table中控制单列内容多行超出省略及tooltip
javascript·vue.js·elementui
刘梦凡呀5 小时前
C#获取钉钉平台考勤记录
java·c#·钉钉
best_virtuoso6 小时前
PostgreSQL 常见数组操作函数语法、功能
java·数据结构·postgresql
yudiandian20146 小时前
02 Oracle JDK 下载及配置(解压缩版)
java·开发语言
Q_Q5110082856 小时前
python+uniapp基于微信小程序的旅游信息系统
spring boot·python·微信小程序·django·flask·uni-app·node.js
楚韵天工6 小时前
宠物服务平台(程序+文档)
java·网络·数据库·spring cloud·编辑器·intellij-idea·宠物