私は過去にハッシュテーブルに関する小さな演習を行いましたが、ユーザーは配列のサイズを指定していましたが、構造体もこのようでした (したがって、ユーザーは入力として毎回数値と単語を指定していました)
struct data
{
int key;
char c[20];
};
私は配列のサイズを知っていたので、それは非常に簡単でした. 私がやった方法は
- ユーザーから渡されたキーをハッシュする
- 配列内の位置配列[ハッシュ(キー)]を見つけます
- 空の場合は、そこにデータを配置します
- そうでない場合は、次の空いている位置に配置します。
しかし、今は逆インデックスを作成する必要があり、ハッシュテーブルを作成できるように再検索しています。そのため、単語は約 30 の txt から収集され、非常に多くなります。この場合、配列の長さはどのくらいですか? 単語をハッシュするにはどうすればよいですか? オープン アドレッシングまたはチェーンで hasing を使用する必要があります。この演習では、ハッシュ テーブルをオンラインで見つければそのまま使用できると述べています。しかし、私はそれを理解し、自分で作成することを好みます。手がかりは私を助けます:)
この演習 (ハッシュ テーブルを使用した逆インデックス) では、構造体は次のようになります。データ型は、作成するハッシュ テーブルの型です。
struct posting
{
string word;
posting *next
}
struct data
{
string word;
posting *ptrpostings;
data *next
};