2
Leftist heap爲每個節點維護一個密鑰和一個等級。節點的等級是葉子最短路徑中的節點數量。左派堆的等級的真正目的是什麼?
整個樹需要維護兩個屬性:
- node.key < node.left.key & & node.key < node.right.key
- node.left.rank> = node.right.rank
我可以理解第一個屬性,因爲它是一堆並且很自然。
但是第二個屬性的目的是什麼?爲什麼我們需要保持右側比左側短?
爲了平衡目的?
已編輯。那是打在電話上的那麼糟糕的運動,但你可以-1而不是侮辱人。 –
感謝您的答案。但爲什麼要保證最短路徑? –
確保路徑最短,確保路徑至多爲log(n),這確保了融合操作的日誌複雜性。 –