1

テーブルにC++の配列を使用してハッシュテーブル表現を作成し、そのようなハッシュ関数を適用するにはどうすればよいk % 10ですか?連鎖を使用して衝突を解決します(つまり、テーブルはリンクリストの配列です)。

また、このテーブルに値を挿入、検索、および削除します。

これまでのところ、私は持っています:

struct Node {
    int value;
    Node* next;
}; 

void insert(int n, Node* hashtable[]) {

    int x = n % 10;
... ...

たとえば、値について言うと10、私のハッシュ関数はを生成する0ので10、配列/ハッシュテーブルの最初のスロットに入ります。
次に、値があれば100100最初のスロットにも移動するので、10「ポイント」し100ます...これをどのようにコーディングしますか?

4

1 に答える 1

0

何かのようなもの

Node* oldFront = hashtable[hashcode];
Node* newNode = new Node(value, oldFront);
hashtable[hashcode] = newNode;

これにより、最新の衝突がリンクリストの先頭に追加されます。つまり、スタックとして機能します。後ろに追加するのは質問者の練習問題として残しておきます!

于 2012-06-02T01:04:38.063 に答える