二叉树的种类
二叉树:二叉树是每个节点最多有两个子树的树结构。
完全二叉树:除最后一层外,每一层上的节点数量均达到了最大值,在最后一层上只缺少右边的若干节点。
满二叉树:除最后一层无任何子节点外,每一层上的所有节点都有两个子节点的二叉树。
二叉搜索树(二叉排序树、二叉查找树):左子树<根节点<右子树,它的左子树不空,则左子树上的所有节点的值均小于根节点的值;若它的右子树不空,则右子树上的所有的节点的值均大于根节点的值。左右子树分别为二叉排序树。当然也可以是一棵空树。
平衡二叉树:有几种实现方式:红黑树、AVL树。
它是一个空树或它的左右两个子树的高度差的绝对值不超过1
。
B树类型(B-树、B+树):一种平衡的二叉树。
B-树:叶子节点之间无指针相连。
B+树:叶子节点之间有指针相连。
说一下你对红黑树和平衡二叉树的区别?(面试有被问到)
红黑树本质上是一种平衡的二叉查找树,只不过,在二叉查找树的基础上引入了额外的规则,以保持平衡。这些规则包括:
- 每个节点要么是红色,要么是黑色。
- 根节点永远是黑色的。
- 所有的叶子节点都是黑色的。
- 每个红色节点的两个子节点一定都是黑色的。
- 从任意节点到其子树中每个叶子节点的路径都包含相同数量的黑色节点。
红黑树自平衡调整包含两个步骤,一个是变色,一个是旋转。
在实现复杂度方面,红黑树的实现相对简单,每次插入最多只需要三次旋转就能达到平衡,而AVL树的实现更为复杂,每次插入后可能需要多次旋转来维持平衡。
对于普通的二叉查找树(非平衡二叉查找树)在极端情况下可能会退还为链表的结构。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
2021-07-20 超键、候选键、主键、外键
2021-07-20 linux系统查找指定文件或者目录
2021-07-20 Weblogic环境部署