Please convert to C language //double hashing #include using namespace std; int digit(int a) { return to_string(a).length(); } void add_using_double_hashing(int hash[], int a) { //hash function...


Please convert to C language



//double hashing
#include
using namespace std;


int digit(int a)
{
    return to_string(a).length();
}


void add_using_double_hashing(int hash[], int a)
{
    //hash function h1(x)=x%10
    //hash function h2(x)=digit(x)
    //for incrementing probing
    int k = a % 10;


    //double hashing
    int count = 1;
    while (true) {
        if (hash[k] == -1) {
            hash[k] = a;
            break;
        }
        //double hashing for incrementing prob length
        k = (k + count * digit(a)) % 10;
        count++;
    }
}


int main()
{
    //set of input numbers
    vector arr{ 123, 124, 333, 4679, 983 };


    //initialize the hash table
    //each entry of the hash table is a single entry
    int hash[10]; //size of hashtable is 10
    //initialize with empty initially
    memset(hash, -1, sizeof(hash));


    for (int a : arr) {
        //hashing
        add_using_double_hashing(hash, a);
    }


    cout < "---------using="" double="">


    cout < "hash="" table="">


    for (int i = 0; i < 10;="" i++)="">
        if (hash[i] == -1)
            cout < i="">< "-="">"
 < "empty"=""><>
        else
            cout < i="">< "-="">" < hash[i]=""><>
    }


    return 0;
}




Output:



----using double hashing-<br>Hash table is:<br>0->Empty<br>1->Empty<br>2->983<br>3->123<br>4->124<br>5->Empty<br>6->333<br>7->Empty<br>8->Empty<br>9->4679<br>

Extracted text: ----using double hashing- Hash table is: 0->Empty 1->Empty 2->983 3->123 4->124 5->Empty 6->333 7->Empty 8->Empty 9->4679

Jun 05, 2022
SOLUTION.PDF

Get Answer To This Question

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here