Fibonnaci кучного поддерживает следующие операции:
insert(key, data)
: добавляет новый элемент в структуру данныхfind-min()
: возвращает указатель на элемент с минимальным ключомdelete-min()
: удаляет элемент с минимальным ключомdelete(node)
: удаляет элемент, на который указываетnode
decrease-key(node)
: уменьшает ключ элемента, на который указываетnode
Все операции без удаления составляют (амортизированное) время, а операции удаления - O ( log n ) амортизированное время.
Существуют ли реализации приоритетной очереди, которые также поддерживают increase-key(node)
в (амортизированное) время?
@ Рафаэль, если вы увеличите ключ минимального элемента так, чтобы он стал теперь самым большим ключом, не сразу очевидно (по крайней мере для меня), что вам не нужно делать сверхпостоянную величину перебалансировки.
—
Джо