草庐IT

B 树的简单认识

理解B树的概念B树是一种自平衡的查找树,能够保持数据有序。这种数据结构能够让查找数据、顺序访问、插入数据及删除数据的动作,都能在对数时间内完成。同一般的二叉查找树不同,B树是一棵多路平衡查找树,其特性是:结点的孩子结点数可以多于两个,且每一个结点处可以存储多个元素。在B树中,非叶子结点可以拥有可变数量的子结点,为了维持在预先设定的数量范围内,通常是对非叶子结点进行合并和分离。其优势是不需要像其他自平衡查找树那样频繁地重新保持平衡,其劣势是结点未被完全填充时会浪费一些空间。特性通常,我们会在B树的名称前添加阶数以示说明,如m阶B树。一个m阶的B树具有以下特性:任意结点最多有m个孩子结点任意除根结

B 树的简单认识

理解B树的概念B树是一种自平衡的查找树,能够保持数据有序。这种数据结构能够让查找数据、顺序访问、插入数据及删除数据的动作,都能在对数时间内完成。同一般的二叉查找树不同,B树是一棵多路平衡查找树,其特性是:结点的孩子结点数可以多于两个,且每一个结点处可以存储多个元素。在B树中,非叶子结点可以拥有可变数量的子结点,为了维持在预先设定的数量范围内,通常是对非叶子结点进行合并和分离。其优势是不需要像其他自平衡查找树那样频繁地重新保持平衡,其劣势是结点未被完全填充时会浪费一些空间。特性通常,我们会在B树的名称前添加阶数以示说明,如m阶B树。一个m阶的B树具有以下特性:任意结点最多有m个孩子结点任意除根结

树的概念

0.注意事项与声明本文摘录整理自DataStructures,Algorithms,andApplicationsinC++.作者:JamesNULLiu邮箱:jamesnulliu@outlook.com博客:www.cnblogs.com/jamesnulliu/学习笔记请注明出处欢迎留言1.中英词汇对应表树tree二叉树binarytree完全二叉树completebinarytree满二叉树fullbinarytree堆heap配对堆pairingheap区间堆intervalheap左高树leftisttree竞赛树tournamenttreeAVL树AVLtree红黑树red-bl

树的概念

0.注意事项与声明本文摘录整理自DataStructures,Algorithms,andApplicationsinC++.作者:JamesNULLiu邮箱:jamesnulliu@outlook.com博客:www.cnblogs.com/jamesnulliu/学习笔记请注明出处欢迎留言1.中英词汇对应表树tree二叉树binarytree完全二叉树completebinarytree满二叉树fullbinarytree堆heap配对堆pairingheap区间堆intervalheap左高树leftisttree竞赛树tournamenttreeAVL树AVLtree红黑树red-bl

【动画笔记】数据结构-AVL树的插入操作

⚠本笔记前置知识:二叉搜索(排序)树及其插入操作。本文主要围绕AVL树的平衡因子、纸上做题思路、失衡类型(LL/RR/LR/RL)、失衡调整方法、插入后回溯这几部分知识点展开。注:本笔记中的平衡二叉树规定所有左子树都小于其父节点,所有右子树都大于其父节点。本笔记中的平衡因子计算方法是左子树高度-右子树高度。目录简单介绍一下下平衡因子简述平衡二叉树的插入操作什么是失衡节点纸上快速做题思路程序中定义树节点失衡类型-LL型失衡举例调整方法-右旋转程序实现失衡类型-RR型失衡举例调整方法-左旋转程序实现失衡类型-LR型失衡举例调整方法-先左旋转再右旋转程序实现失衡类型-RL型失衡举例调整方法-先右旋转

【动画笔记】数据结构-AVL树的插入操作

⚠本笔记前置知识:二叉搜索(排序)树及其插入操作。本文主要围绕AVL树的平衡因子、纸上做题思路、失衡类型(LL/RR/LR/RL)、失衡调整方法、插入后回溯这几部分知识点展开。注:本笔记中的平衡二叉树规定所有左子树都小于其父节点,所有右子树都大于其父节点。本笔记中的平衡因子计算方法是左子树高度-右子树高度。目录简单介绍一下下平衡因子简述平衡二叉树的插入操作什么是失衡节点纸上快速做题思路程序中定义树节点失衡类型-LL型失衡举例调整方法-右旋转程序实现失衡类型-RR型失衡举例调整方法-左旋转程序实现失衡类型-LR型失衡举例调整方法-先左旋转再右旋转程序实现失衡类型-RL型失衡举例调整方法-先右旋转

AVL 树的简单认识

基本概念结合二叉查找树的特性,以及AVL树自身的特性,AVL树具有以下特性:若任意结点的左子树不为空,则左子树上所有结点的值均小于它的根结点的值若任意结点的右子树不为空,则右子树上所有结点的值均大于或等于它的根结点的值任意结点的左、右子树也分别为二叉查找树任意结点的子树的高度差都小于等于1上述的前三项是二叉查找树的特性,第四项是AVL树自平衡的特性。实现原理为了保证二叉树的平衡,AVL树引入了监督机制,就是在树的某一部分的不平衡度超过一个阈值后触发相应的平衡操作,保证树的平衡度在可以接受的范围内。既然引入了监督机制,则必然需要一个监督指标,以此来判断是否需要进行平衡操作,这个监督指标被称为平衡

AVL 树的简单认识

基本概念结合二叉查找树的特性,以及AVL树自身的特性,AVL树具有以下特性:若任意结点的左子树不为空,则左子树上所有结点的值均小于它的根结点的值若任意结点的右子树不为空,则右子树上所有结点的值均大于或等于它的根结点的值任意结点的左、右子树也分别为二叉查找树任意结点的子树的高度差都小于等于1上述的前三项是二叉查找树的特性,第四项是AVL树自平衡的特性。实现原理为了保证二叉树的平衡,AVL树引入了监督机制,就是在树的某一部分的不平衡度超过一个阈值后触发相应的平衡操作,保证树的平衡度在可以接受的范围内。既然引入了监督机制,则必然需要一个监督指标,以此来判断是否需要进行平衡操作,这个监督指标被称为平衡

行为树的优缺点

优点模块化BT的每个子树都可以是一个模块。模块化系统可以设计、应用、测试和重用一个模块。分而治之的模块化系统会随着系统的复杂度增加而变得更加有益。分层组织BT包含多个级别的决策。在不同层次上的设计和分析结构能实现迭代细化和计划拓展。可重用代码BT的所有子树只需要返回“运行“、”成功“和”失败“,这使得一个子树在任意子树都是可重用的。反应性BT的反应性表现为每Tick对树进行闭环遍历。可读性可读性可以降低开发和调试的成本。由于BT的树结构和模块化,使得BT具有可读性表达能力BT至少有四种表达方式:有限状态机、包容体系结构、远程反应程序、决策树。适用于分析BT可以从这几个特性进行定性和定量分析:安

行为树的优缺点

优点模块化BT的每个子树都可以是一个模块。模块化系统可以设计、应用、测试和重用一个模块。分而治之的模块化系统会随着系统的复杂度增加而变得更加有益。分层组织BT包含多个级别的决策。在不同层次上的设计和分析结构能实现迭代细化和计划拓展。可重用代码BT的所有子树只需要返回“运行“、”成功“和”失败“,这使得一个子树在任意子树都是可重用的。反应性BT的反应性表现为每Tick对树进行闭环遍历。可读性可读性可以降低开发和调试的成本。由于BT的树结构和模块化,使得BT具有可读性表达能力BT至少有四种表达方式:有限状态机、包容体系结构、远程反应程序、决策树。适用于分析BT可以从这几个特性进行定性和定量分析:安