0

だから、私は機能を持っています。に数字を挿入するにはどうすればよいHashtableですか? forテーブルのサイズまで行くA ?存在する場合、その中に何が入っているのかわかりませんfor

#include <stdio.h>

//Structure
typedef struct Element {
    int key;
    int value;
} Element;

typedef struct HashTable {
    Element *table[11];
} HashTable;


//Create an empty Hash
HashTable* createHashTable() {
    HashTable *Raking = malloc(sizeof(HashTable));

    int i;
    for (i = 0; i < 11; i++) {
        Raking->table[i] = NULL;
    }
    return Raking;
}

//Insert element
void insertElement(HashTable *Raking, int key, int value) {

    int h = hashFunction(key);

    while(Raking->table[h] != NULL) {

        if(Raking->table[h]->key == key) {
            Raking->table[h]->value = value;
            break;
        }

        h = (h + 1) % 11;
    }

    if(Raking->table[h] == NULL) {
        Element *newElement = (Element*) malloc(sizeof(Element));
        newElement->key = key;
        newElement->value = value;
        Raking->table[h] = newElement;
    }
}

int main() {

    HashTable * Ranking = createHashTable();


    /** ??? **/


}

これらの構造を使用してメイン関数を作成する方法を誰かに説明してもらえますか? この場合、このテーブルの要素数を固定していますよね? (表 [11]) ユーザーがハッシュ テーブルのサイズを判断するにはどうすればよいですか? 出来ますか?それともサイズを設定する必要がありますか?

4

1 に答える 1