Я написал этот метод, который извлекает элемент max из очереди, содержащей объекты Node.Основная проблема заключается в том, что когда я выполняю удаление, индексы элементов уменьшаются на 1, поэтому в хэш-карте я потерял корреляцию между Node-Position (мой хэш-файл: HashMap <Node<T,E>, Integer> hmap
)
public Node extractMax() throws PriorityQueueException {
if (getSize() == 0) throw new PriorityQueueException("Cannot read from an empty queue");
Node max = getRoot();
queue.remove(0);
hmap.remove(max);
heapify(0);
return max;
}
Как я могу решить это со сложностью <= O (n)? </p>