1、二叉堆介绍 优先级队列,C++的容器适配器,底层是默认实现的大根堆结构。 二叉堆,这个堆本身还是用数组存储着元素,物理上还是用数组存储的元素,只不过在逻辑上把它看成有1个入口的根节点,每1个节点都有2个孩子,没有孩子的最下面一层叫叶子节点,这样的一棵二叉树结构。 完全二叉树的概念: 下面这个新增加了一个10,不是完全二叉树! 完全二叉树的好处: 存储节点,可以省数组的内存空间。 为什么我们可以把物理上用数组存储元素,在逻辑上看作一棵完全二叉树呢? 我们看图中的数组存储元素从0号位置开始,一直存储到8号位置,总共是9个元素: