#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define TABLE_SIZE 1000
// Node structure for separate chaining
typedef struct Node{
    int ket;
    char value[50]; // Assuming value is a string of max length 49
    struct Node* next;
} Node;
// Hash map structure
typedef struct HashMap{
    Node** table;
}HashMap;
// Function to create a new node 
Node* createNode(int key, const char* value){
    Node* newNode = (Node*)malloc(sizeof(Node));
    strcpy(newNode->value, value);
    newNode->next = NULL;
    return newNode;
}
// Hash function
int hashfunction(int key){
    return key % TABLE_SIZE;
}
// Function to create a hash map
HashMap* createHashMap(){
    HashMap* map = (HashMap*)malloc(sizeof(HashMap));
    map->table = (Node**)calloc(TABLE_SIZE, sizeof(Node*));
    return map;
}
// Function to add an element to the hash map
void add(HashMap* map, int key, const char*value){
    int index = hashFunction(key);
    Node*newNode = createNode(key,value);
    if(map->table[index] == NULL){
       map->table[index] = newNode;
    }else{
        Node* current = map->table[index];
        while(current->next ! key){
            if(current->key ==)
}
return 0;
}