二叉树:
1、若它的左子树不空,则左子树上所有结点的值均小于它的根节点的值;
2、若它的右子树上所有结点的值均大于它的根节点的值;
3、它的左、右子树也分别为二叉排序树。
通过二分查找的思想搜索速度会比较快,但是也存在着缺陷,容易导致树失去平衡。
AVL树(平衡二叉树):具有二叉树的所有特性,并且每个节点的左子树和右子树的高度差最多等于1(该节点与下面的子节点差距最多为1)。
如图1所示,1表示的是5这个节点下面有1个节点,也就是树的高度为1,0表示下面没有节点了,因此图1就是ALV树。
而图2中5下面有2个节点:3、4,那么高度就超过1了,因此不是ALV树。
优点:查询速度效率极高,但是增加、删除效率低。
红黑树:
1、节点颜色只有红色和黑色。
2、根节点必须为黑色。
3、一般情况下颜色顺序是按照黑色-红色-黑色无限循环,特殊情况下:如果叶子节点为空的话则变成黑色。
4、从一个节点到该节点的子孙节点的所有路径上包含相同数目的黑节点。(因为是按照黑色-红色-黑色这样的顺序无限循环的,并且叶子节点为空的话会变成黑色。)
优点:相比ALV树的话,性能相对综合,虽然在搜索效率不如ALV树,但是增加、删除等操作完爆ALV树。
b树(b-树):
b+树: