- 顾名思义,二叉查找树就是适用于查找的二叉树,其最重要的特征就是任意节点的左子树中所有节点的值都小于该节点、右子树中所有节点的值都大于该节点。这个特征决定了二叉查找树可以使用二分法查找节点,查找速度很快
- 树中没有值相等的两个节点;新插入的节点总是叶子节点,下面为二叉查找树的图例
比对有序数组和链表讨论二叉查找树的优缺点
-
有序数组查找时也可使用二分法进行查找;但劣势较为明显,无法很轻松的进行数组的扩展,且增删较慢
-
链表的优势在于增删可以通过指针,但弱势很明显,查找需要从头开始遍历
-
二叉查找树的查找最坏情况就是退化为链表,最好情况可以和有序数组效率相同;增删也不用考虑扩展问题,整体适用性较数组和链表都高
-
弱势在于性能上的不稳定,形式上退化为链表后性能甚至不如链表。所以二叉查找树在实际应用中并不常见,但不失为帮助我们理解更高级数据结构的好帮手