1:二叉查找树
二叉查找树的特点就是左子树的节点值比父亲节点小,而右子树的节点值比父亲节点大
基于二叉查找树的这种特点,我们在查找某个节点的时候,可以采取类似于二分查找的思想,快速找到某个节点。n 个节点的二叉查找树,正常的情况下,查找的时间复杂度为 O(logn)
但是会有一种极端情况如:
此时的二叉查找树 退化成链表,查找的时间复杂度变为O(n)。
2:平衡二叉树
平衡二叉树就是为了解决二叉查找树退化成一颗链表而诞生了,平衡树具有如下特点
1、具有二叉查找树的全部特性。
2、每个节点的左子树和右子树的高度差至多等于1。
于是,通过平衡树,我们解决了二叉查找树的缺点。对于有 n 个节点的平衡树,最坏的查找时间复杂度也为 O(logn)。
3:红黑树
虽然平衡树解决了二叉查找树退化为近似链表的缺点,能够把查找时间控制在 O