私はアルゴリズムの紹介という本を読んでいて、これに出くわしました:
リストが二重にリンクされている場合、O(1) 時間で要素を削除できます。(CHAINED-HASH-DELETE はキー k ではなく要素 x を入力として受け取ることに注意してください。そのため、最初に x を検索する必要はありません。ハッシュ テーブルが削除をサポートしている場合、そのリンク リストは二重にリンクされている必要があります。アイテムをすばやく削除できます.リストが単独でリンクされている場合、要素 x を削除するには、まずリスト T[h(x.key)] で x を見つけて、x の次の属性を更新できるようにする必要があります。単独でリンクされたリストでは、削除と検索の両方が同じ漸近的な実行時間になります。)
リストが二重にリンクされている場合、O(1) 時間で要素を削除するにはどうすればよいでしょうか? 最初に要素を見つける必要があり、それから O(1) で削除できます。しかし、それを見つけるには O(リストの長さ) の時間が必要です。二重リンクリストで削除する方が速いかもしれませんが(リストの両端から同時に検索できるためですが、それは常に改善されているだけです)、O(1)でどのように実行できるかわかりません時間。
前もって感謝します。