堆
堆逻辑上首先是一棵完全二叉树
大根堆/大堆:堆中根节点值 >= 子树的节点值,叫做大堆/大根堆/最大堆
小根堆/小堆:堆中根节点值 <= 子树的节点值,叫做小堆/大根堆/最大堆
二叉树的存储方式
使用数组保存二叉树结构,将二叉树用层序遍历方式放入数组中
使用顺序表存储完全二叉树时,节点的索引和节点的关系如下:
根节点从0开始编号,已知父节点为k,左子树索引为2k+1,右子树索引为2k+2
已知子节点为k,父节点就是(k-1)/ 2
优先级队列
优先级队列处理的元素是动态变化的,有进有出
JDK中的优先级队列默认是最小堆的实现,队首就是当前队列的最小值
比较两个自定义类型是否相等,覆写object中的equal()方法