返回题目列表
COMP2521
2-3-4 树 · 插入后的根
2-3-4 树 · 插入后的根
按输入顺序把若干互不相同的整数插入一棵初始为空的 2-3-4 树,使用「自顶向下、边走边裂」策略,最后输出根节点的键。
自顶向下插入的要点:
- 若根是 4-节点(已有 3 个键),先裂根:中键升为新根,树长高一层。
- 从根下行找插入位置;路上遇到 4-节点的孩子,先裂开它(中键提到父亲),再继续下行——这样父亲永远有空位,绝不连环爆。
- 到达叶子,把值有序插入。
这正是 COMP2521 21T3 Q3 那类「插入后根变成谁」的题。请补全splitChild和insert。
输入
- 第 1 行:整数
n(个数,可能为 0)。 - 第 2 行:
n个互不相同的整数,按此顺序插入。
输出
- 一行:最终根节点的键,升序,每个值后跟一个空格。
n = 0时输出空行。
示例:输入 7 / 10 20 30 40 50 60 70 → 输出 20 40 (建树过程中发生多次裂变,最终根是 3-节点 [20 40])。
样例
stdin
7 10 20 30 40 50 60 70
期望输出
20 40
stdin
3 50 30 70
期望输出
30 50 70
c-dcc
14