2013-07-23 6 views
2

Leftist heap поддерживает ключ и ранг для каждого узла. Рангом узла является количество узлов вдоль кратчайшего пути к листу.Какова реальная цель звания в левой куче?

Все дерево нуждается два свойства, которые будут поддерживаться:

  1. node.key < node.left.key & & node.key <
  2. node.right.key
  3. node.left.rank> = node.right.rank

Я могу понять первое свойство, так как это куча, и это естественно.

Но какова цель 2-го имущества? Почему мы должны держать правильные короче левого?

Для балансировки?

ответ

0

В статье вы цитируется сказал:

Эти условия обеспечивают, что левое дерево является пирамидой (элемент с минимальным ключом находится на вершине кучи), и что самый короткий путь к листу узел получают по rightlink

состояние, которое вы спрашивали о и

P.rank = 1 + min((P.left).rank, (P.right).rank); 

Гарантирует второй.

Поскольку операция слияния осуществляется по правому узлу, это обеспечивает логарифмическую производительность работы.

+0

Отредактировано. Возможно, это было напечатано на телефоне, так что плохой вид спорта, но вы можете вместо 1 оскорбить людей. –

+0

спасибо за ответ. но зачем обеспечить кратчайший путь? –

+0

Обеспечение кратчайшего пути гарантирует, что путь не превышает log (n), что обеспечивает сложность работы журнала (n). –

Смежные вопросы