#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <limits.h>
#include "hash.h"

unsigned int generate_hash(hash_table_t *ht, unsigned long int key) 
{
    /* Your code goes here */
}

hash_table_t* create_hash_table(unsigned int size, enum table_type type, unsigned long int (*getkey)(void *), int (*compare)(void *, void *))
{
    /* Your code goes here */
}


int insert(hash_table_t *ht, void *value, int *opcount)
{
    /* Your code goes here */
}


hash_node_t* search(hash_table_t *ht, void *value, int *opcount)
{
    /* Your code goes here */
}



int insert_chained(hash_table_t *ht, void *value, int *opcount)
{
    /* Your code goes here */
}

int insert_linear(hash_table_t *ht, void *value, int *opcount)
{
    /* Your code goes here */
}

int insert_quadratic(hash_table_t *ht, void *value, int *opcount)
{
   /* Your code goes here */
}

hash_node_t* search_chained(hash_table_t *ht, void *value, int *opcount)
{
    /* Your code goes here */
}


hash_node_t* search_linear(hash_table_t *ht, void *value, int *opcount)
{
    /* Your code goes here */
}



hash_node_t* search_quadratic(hash_table_t *ht, void *value, int *opcount)
{
    /* Your code goes here */
}

