2

nextElement() を一定時間で実装できるハッシュ テーブルをどのように設計するかを尋ねられました。

私の答えは、空のバケットのチェックを避けるために、ハッシュに追加された要素を二重リンク リストに追加できるというものでした。

ハッシュ テーブルの要素を繰り返し処理するように求められた場合は、リストを最初から最後までトラバースするだけで済みます。要素がハッシュから削除されると、リストからの削除も一定の時間で行われます。

もちろん、これには、リストと次へ/前へのポインター用の余分なスペースが必要です。

このアプローチは大丈夫ですか?より良い代替案は?

ありがとうございました。

編集: より正確にするためにタイトルを変更しました

4

1 に答える 1

0

この質問がわかりません。
すべての要素を反復することは確かにO(N)操作であり、一定の時間では実行できません。
あなたが言うリストでは、table[i]==null実際にはループにオーバーヘッドを追加しない一連の操作を保存しているだけです。

于 2012-09-22T09:51:40.377 に答える