Восстановить java.util.PriorityQueue после обновления элементов

у меня есть PriorityQueue, содержащий ссылки на некоторые объекты. Когда я изначально вставляю элементы в приоритетную очередь, порядок поддерживается структурой данных. Теперь после операции удаления я обновляю некоторые ссылки, которые хранятся в очереди приоритетов. В идеале для этого требуется операция reheapify в очереди с приоритетами, но, как очевидно, поскольку я изменяю выбранные ссылки извне, reheapify не может быть запущен. Итак, как лучше всего убедиться, что я могу получить преимущество кучи, например, fast extract max, при наличии модификаций произвольных элементов внутри очереди? Я вижу, что мне нужна лучшая структура данных?

Чтобы быть более конкретным, мне нужна реализация чего-то вроде кучи Фибоначчи в Java. http://en.wikipedia.org/wiki/Dijkstra%27s_algorithm Это доступно?

5
задан James Montagne 29 December 2011 в 03:28
поделиться