网站建站建设哪家好,短视频app软件下载大全,wordpress加个文本框,注册公司一般需要多少钱无论线性表#xff0c;栈还是队列#xff0c;都是一对一#xff0c;查询的时候#xff0c;效率较低#xff0c;数据量比较的大的情况
1.树的定义
一种数据结构#xff0c;有层次关系的集合#xff0c;根朝上#xff0c;叶朝下
除了根节点外#xff0c;每个子节点都…无论线性表栈还是队列都是一对一查询的时候效率较低数据量比较的大的情况
1.树的定义
一种数据结构有层次关系的集合根朝上叶朝下
除了根节点外每个子节点都有多个不想交的子树
父节点
子节点
兄弟节点
树根节点根节点
叶子节点
子树
空树
度最大子树数多少分支
层次深度第一层第二次以此类推最大层数是4
森林树多了
2.二叉树
树中包含的各个节点不能超过2度不能超过2
二叉树衍生出满二叉树和完全二叉树二叉树分为顺序存储的二叉树基于链表存储的二叉树。
二叉排序树平衡二叉树赫夫曼树红黑树都是属于二叉树。
2.1二叉排序树搜索树
比它小放它左边比它大放右边。
查找复杂度较低o(logn)
插入的数据总是比已有的数据大子树会向一边切斜树的层次变深形成链表结构出现了平衡二叉树。
2.2平衡二叉树
子树的高度不大于1查询速度快插入和删除慢要进行旋转和平衡度计算。为了解决删除插入比较耗时出现了红黑树
2.3红黑树
在平衡二叉树上增加了红色或黑色增加了颜色属性
根节点和叶子节点是黑色内部节点是红色和黑色较低叶子节点必须是黑色根节点只能是黑色。
从根节点走到空节点所经过的黑节点的数目是相同的。
左旋和右旋翻转颜色
AVL树和rb树的区别
3.多叉树
大规模数据存储二叉树树的深度过深导致查询效率低下磁盘io读写过于频繁导致查询效率低下多叉树能够解决这个问题
b树b树
3.1 b-tree
b树适用于读写相对大的数据块的存储系统
每个节点可以存储超过2个元素可以超过2的字节点
拥有AVL平衡树的特点
拥有二叉搜索树的特点
B树比较矮分叉越多树越矮io次数较少搜索性能较高。
三阶B树最多有3个分叉四阶B树最多拥有4个分叉
一个节点最好凑够一个数据块的大小凑够一个数据块的大小直接写入磁盘。
一般4096b一个节点因为一个磁道就4096b但是不一定根据你磁盘来弄。
3.2 btree
分为非叶子节点叶子结点
内部节点只存储key不存储值
叶子节点存储key和value具体数据、
所有的叶子节点形成一个有序链表排序和查询范围支持好。
b树的节点存储的元素个数是m那么它的字节点数是m1
b比b树的优势也是为什么mysql要选择b树
b存储更多的key树的高度更低时间复杂度越小查询块
数据在叶子节点每次都要到叶子节点查询稳定都是去第三层。
叶子节点构成链表结构方便查询和排序