1. 2-3查找树定义
解析:一棵2-3查找树或为一棵空树,或由以下结点组成:
(1)2-结点,含有一个键(及其对应的值)和两条链接,左链接指向的2-3树中的键都小于该结点,右链接指向的2-3树中的键都大于该结点。
(2)3-结点,含有两个键(及其对应的值)和三条链接,左链接指向的2-3树中的键都小于该结点,中链接指向的2-3树中的键都位于该结点的两个键之间,右链接指向的2-3树中的键都大于该结点。
说明:指向一棵空树的链接称为空链接。
2. 结点插入
(1)向2-结点中插入新键
(2)向3-结点中插入新键
第一种情况:向一个父结点为2-结点的3-结点中插入新键,如下所示:
第二种情况:向一个父结点为3-结点的3-结点中插入新键,如下所示:
(3)分解根结点
3. 分解4-结点情况总结
4. 结点查找
解析:要判断一个键是否在树中,先将它和根结点中的键比较。如果它和其中任意一个相等,查找命中;否则根据比较结果找到指向相应区间链接,并在其指向的子树中递归地继续查找。如果是空链接,查找未命中。如下所示:
5. 时间复杂度分析
解析:
(1)在一棵大小为N的2-3树中,查找和插入操作访问的结点必然不超过个。
(2)任意空链接到根结点的路径长度都是相等的。
参考文献:
[1] 算法(第4版):2-3查找树