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