左派堆为每个节点维护一个键和一个等级。节点的等级是沿着到叶子的最短路径中的节点数。
整棵树需要维护两个属性:
- node.key < node.left.key && node.key < node.right.key
- node.left.rank >= node.right.rank
我可以理解第一个属性,因为它是一个堆并且很自然。
但是第二个属性的目的是什么?为什么我们需要保持右边比左边短?
为了平衡目的?
左派堆为每个节点维护一个键和一个等级。节点的等级是沿着到叶子的最短路径中的节点数。
整棵树需要维护两个属性:
我可以理解第一个属性,因为它是一个堆并且很自然。
但是第二个属性的目的是什么?为什么我们需要保持右边比左边短?
为了平衡目的?