这是我参与「第五届青训营 」伴学笔记创作活动的第4天。
二叉树
二叉树是指树中节点的度不大于2的有序树,它是一种最简单且最重要的树。二叉树的递归定义为:二叉树是一棵空树,或者是一棵由一个根节点和两棵互不相交的,分别称作根的左子树和右子树组成的非空树;左子树和右子树又同样都是二叉树。二叉查找树充分了利用二分法的思维提升了数据查找的效率,不过构建二叉树的时候就会发现很容易出现一个问题,就是二叉查找树的“高度”不稳定,同样的数据插入的先后顺序不一样,就很有可能变成下图一样的结构。
平衡二叉树
如果树的节点变成线性结构,那么就会极大的降低我们的查询效率,所以我们必须要有一种方式来保证二叉树节点的平衡,让树的节点高度差不会太大,这时就有了平衡二叉树。平衡二叉树具有以下性质:它是一棵空树或它的左右两个子树的高度差的绝对值不超过1,并且左右两个子树都是一棵平衡二叉树。
B树(B-树)
B树和平衡二叉树的不同之处是:B树属于多叉树又名平衡多路查找树,数据库索引技术里大量使用着B树和B+树的数据结构。
初次接触并理解B树最好的方法是查看一个例子,如下图所示:
有关B树的查询插入以及删除操作可以查看此博客,B+树也有介绍。