数据结构(邓俊辉)学习笔记】优先级队列 03——完全二叉堆:结构

1.完全二叉树

在上一节我们看到,就优先级队列的实现方式而言,采用基本的向量结构并不足够,而采用更高级的树形结构,虽然完全可以高效率地实现优先级队列,但却有杀鸡用牛刀之嫌。那么能否在这两种策略之间设计一种折中的方案呢?
在这里插入图片描述

答案是肯定的,为此我们需要以向量为形,以树形结构为神,实现二者之间的有机结合。

在这里插入图片描述

为此,我们需要借助完全二叉树。所谓的 ”Complete Binary Tree“, 可以认为是 AVL 树的一个特例,其中的平衡因子处处非负。也就是说各节点的平衡因子或者为0,或者为 +1,但绝对不可能是-1。

而且对于树中的任何一个节点 V 而言,如果它的平衡因子为 0,那么左子树就必然是满树。另一种可能,如果 v 的平衡因子为 +1,那么它的右子树就必然是满树。由这些约定不难推知,就全局的拓扑结构而言,完全二叉树大致应该呈现为这样一种形式。

也就是说,如果忽略它的最底层,那么其余节点应该组成一棵满树。而最底层也只不过是缺失了右侧的连续一段。

2.结构性

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值