查找树:又叫做搜索树、排序树,它规定了内部的结构是有规律的。
平衡树:是查找树,且保证左右子树层数相当。
1、二叉查找树
它满足左子树小于根,右子树大于根,且每一个子树都是二叉查找树。
例如:
对其进行中序遍历会得到有序集合:
第一个:2 3 4 6 7 9 13 15 17 18 20
第二个:1 3 4 6 7 8 10 13 14
2、平衡二叉树
平衡树也是查找树,是有序的,不过是为了避免查找树变成单链表,将其左右子树的深度做以平衡。
一般说平衡二叉树,指的是使用AVL算法实现平衡二叉树。
规定:
左右子树高度差不大于1。
3、红黑树(平衡二叉树)
也是一种平衡二叉树。它给每个节点添加了颜色属性。
规定:
1、根节点是黑色。
2、红节点的子节点必须为黑色节点。
3、空节点必须为黑色。
4、从一个节点到该节点的子孙节点,的所有路径上包含相同数目的黑节点。
使用:
Java中的TreeSet、TreeMap。
4、B树(平衡多叉树)
它是平衡树,但是支持多叉,降低树的深度。
目的:
为了解决文件系统的文件查找。
如下图:
1、根节点的左子树P1存储了小于17的数据。
2、根节点的中间子树P2存储了(17-35)的数据。
3、根节点的右子树P3存储了大于35的数据。
5、B+树
所有数据都放在底层,上层只存放索引。
使用:
数据库中的索引默认就是使用B+树实现的。
6、B*树
在B+树的基础上,给非根节点和非叶子节点添加了指向兄弟节点的指针。
标签:子树,17,查找,二叉树,平衡,节点 From: https://www.cnblogs.com/lurenjia-bky/p/16966353.html