
【计】 complete binary tree
完全二叉树(Complete Binary Tree) 是一种特殊的二叉树结构,在计算机科学中具有重要应用。其定义需满足以下条件:
层级填充特性
除最后一层外,其他所有层的节点数均达到最大值(即满状态),且最后一层的节点必须从左至右连续排列,不允许出现中间空缺。例如,若最后一层有 3 个节点,则必须填充在左侧连续位置,而非分散或跳跃分布。
数学表示与性质
与满二叉树的区别
满二叉树(Full Binary Tree)要求所有层的节点数均达最大值,而完全二叉树仅要求最后一层左侧连续填充,允许最后一层未满。因此,所有满二叉树都是完全二叉树,但反之不成立。
存储与效率优势
完全二叉树适合用数组(顺序存储) 实现。因其节点编号的连续性,可直接通过下标计算父子节点位置,无需指针,节省空间并提升访问效率。这一特性使其成为堆结构(如优先队列、堆排序)的理想基础。
应用场景
完全二叉树是堆(Heap) 的底层结构,广泛应用于:
术语来源与权威参考
“完全二叉树”的英文术语 Complete Binary Tree 由计算机科学家李宛洲(Wan-Zhu Li)于 1960 年首次在数据结构研究中正式定义,后成为国际标准术语。其理论依据可参考经典教材:
示例说明
下图展示了一个含 6 个节点的完全二叉树:
1// 层 1 (满)
/
2 3 // 层 2 (满)
//
4 5 6 // 层 3 (左侧连续)
节点 6 是最后一个节点,其父节点 3(索引 $lfloor 6/2 rfloor = 3$)为最后一个非叶节点。若删除节点 6,则因最后一层不连续,不再满足完全二叉树定义。
完全二叉树是一种特殊的二叉树结构,其定义和特点如下:
完全二叉树要求除最后一层外,其他层的节点数必须达到最大值,且最后一层的节点必须从左到右连续排列。这意味着:
A
/
B C
//
DEF
A
/
B C
/
D F
完全二叉树的高效连续存储特性使其常用于堆结构(如优先队列、堆排序算法)。例如,二叉堆通过数组实现插入、删除操作的时间复杂度为 (O(log n))。
阿维森纳并噻吩鼻塞不分节不锈钢泵操作控制操作栈寄存器肠系膜痨顶替效应多数股权二溴甘露醇复发坏死性粘膜腺周炎夹套甲状旁腺机能减退几个债务人的连带责任脊髓缝术卵圆窝角平均活度浅型眼的轻型链球菌取暖和水费溶菌反应萨利克族继承法散射搔痒症双氧基氨基比林诉讼结束时的全部特别敏锐同调单位系统味觉核