二叉搜索树

2020-07-16 algorithm structure

二叉搜索树 Binary Search Tree

二叉树的一种,对于所有节点,其左子树的值小于根结点的值,右子树的值大于根结点的值,当采用中序遍历的时候,得出的结果就是有序序列。

查找

BST 满足上述的特性,那么只需要将要查找的值与当前节点进行判断,然后根据结果是走左分支还是右分支即可。

查找、插入和删除的效率与数的高度 n 相关,一般是 log n ,最坏可能达到 O(n) ,也就是降级成链表。

线索二叉树 (Threaded Binary Tree)

在左指针或者右指针为空的时候,将指针充分利用,从而优化遍历的效率,简单来说如下。

原本为空的右指针指向该节点在中序序列中的后继,原本为空的左指针指向该节点在中序序列的前驱。

从而可以线性遍历二叉树,比递归的中序遍历要更快一些。