优先队列priority queues(heaps)
二叉堆(堆)binary heap
两条性质:
1.结构方面:一定要是一个完全二叉树,第一个节点为null
2.堆序性:
min heap:每个父节点的值都比子节点小
max heap:每个父节点的值都比子节点大
上滤
下滤
d-heap
d为父节点的子节点个数,与binary heap大致相同
leftist heap左式堆
性质:1.是一个二叉树
2.任意节点的左子节点的空路径长度不小于右子节点的空路径长度
空路径长度:距离据不具备两个子节点的节点的最短路径长度
合并:1.将较小的根作为结果的根
2.将根的左子树保留
3.较小根的右子树与较大根的左氏堆合并
交换:将不符合左氏堆的左右子树互换
skew heap
性质:只要是二叉树
左氏堆一定是斜堆。
合并:与左氏堆一致
交换:凡是最右边的都要交换