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树中插入一个新结点,可以和二叉查找树一样先进行一次未命中的查找,然后把新结点挂载树的底部。如果未命中的查找结束于一个2-结点,那么只要把这个2-结点替换为一个3-结点,将要插入的键保存在其中即可。

(2)向3-结点中插入新键

第一种情况:向一个父结点为2-结点的3-结点中插入新键,如下所示:

2-3查找树总结

第二种情况:向一个父结点为3-结点的3-结点中插入新键,如下所示:

2-3查找树总结

(3)分解根结点

2-3查找树总结


3. 分解4-结点情况总结

2-3查找树总结


4. 结点查找

解析:要判断一个键是否在树中,先将它和根结点中的键比较。如果它和其中任意一个相等,查找命中;否则根据比较结果找到指向相应区间链接,并在其指向的子树中递归地继续查找。如果是空链接,查找未命中。如下所示:

2-3查找树总结


5. 时间复杂度分析

解析:

(1)在一棵大小为N的2-3树中,查找和插入操作访问的结点必然不超过2-3查找树总结个。

(2)任意空链接到根结点的路径长度都是相等的。


参考文献:

[1] 算法(第4版):2-3查找树    

相关文章:

  • 2021-12-14
  • 2022-12-23
  • 2021-10-27
  • 2021-06-01
  • 2021-06-01
  • 2022-02-19
  • 2021-09-06
猜你喜欢
  • 2021-10-07
  • 2021-10-21
  • 2021-08-16
  • 2021-05-26
  • 2021-11-27
  • 2021-09-08
相关资源
相似解决方案