一定時間内にヒープ内の要素を見つけることができれば、ヒープの中央からノードを削除するのに O(lg n) を使用できます。ヒープのノードにフィールドとして id が含まれているとします。id を指定した場合、O(lg n) 時間でノードを削除するにはどうすればよいでしょうか?
解決策の 1 つは、ヒープ内のノードのインデックスを維持する、各ノード内の場所のアドレスを持つことができることです。この配列は、ノードIDによって注文されます。ただし、これには追加の配列を維持する必要があります。同じことを達成するための他の良い方法はありますか。
PS: Djikstra の Shortest Path アルゴリズムを実装しているときに、この問題に遭遇しました。