二叉搜索树的中序序列相同,则称它们彼此等价。两个等价的二叉搜索树,可能在形态上存在拓普茶艺,各个节点的垂直高度可能有所不同,但水平次序完全相同,可简化为“上下可变,左右不可变”。
1. 树高与性能
一个二叉搜索树(要求有序)需要支持的主要接口有:
- search()
- insert()
- remove()
三者的时间复杂度均正比于二叉树的高度。在最坏的情况下,所有的内部结点(根和叶子除外),均为左孩子结点或右孩子结点。此时的查找效率甚至会降至 O(n) ,线性正比于数据集的规模。故若不能有效地控制树高,则就实际的性能而言,相比此前的向量和列表,二叉搜索树将无法体会出明显优势。
2. 结点数与树的高度
证明含 n 个结点的二叉树的最小高度为 ⌊log2n⌋ (同时也是完全二叉树(线性表存储)的树高)。
高度为 h 的二叉树结点与树高的关系为:
n≤2h+1−1
等号成立,当且仅当二叉树是满树。
h≥⌈log2(n+1)⌉−1=⌊log2n⌋