77 lines
1.7 KiB
C
Executable File
77 lines
1.7 KiB
C
Executable File
#include "tommyDS_hashlin/tommychain.h"
|
|
#include "tommyDS_hashlin/tommyhash.h"
|
|
#include "tommyDS_hashlin/tommyhashlin.h"
|
|
#include "tommyDS_hashlin/tommylist.h"
|
|
#include "tommyDS_hashlin/tommytypes.h"
|
|
#include "tommyDS_hashlin/tommyhash.c"
|
|
#include "tommyDS_hashlin/tommyhashlin.c"
|
|
#include "tommyDS_hashlin/tommylist.c"
|
|
|
|
void init_hash_table(void *ht, void *ll)
|
|
{
|
|
tommy_hashlin_init(ht);
|
|
tommy_list_init(ll);
|
|
}
|
|
|
|
void add_hash_table(void *ht, void *ht_node, void *ll, void *ll_node, void *obj, void *key, int key_len)
|
|
{
|
|
tommy_hashlin_insert(ht, ht_node, obj, tommy_hash_u32(0, key, key_len));
|
|
tommy_list_insert_tail(ll, ll_node, obj);
|
|
}
|
|
|
|
void *find_hash_table(void *ht, void *key, int key_len, void *compare)
|
|
{
|
|
return tommy_hashlin_search(ht, compare, key, tommy_hash_u32(0, key, key_len));
|
|
}
|
|
|
|
void *search_remove_elem_hash_table(void *ht, void *key, int key_len, void *compare)
|
|
{
|
|
return tommy_hashlin_remove(ht, compare, key, tommy_hash_u32(0, key, key_len));
|
|
}
|
|
|
|
void remove_elem_hash_table(void *ht, void *ht_node)
|
|
{
|
|
return tommy_hashlin_remove_existing(ht, ht_node);
|
|
}
|
|
|
|
int count_hash_table(void *ht)
|
|
{
|
|
return tommy_hashlin_count(ht);
|
|
}
|
|
|
|
void deinitialize_hash_table(void *ht)
|
|
{
|
|
tommy_hashlin_done(ht);
|
|
}
|
|
|
|
void sort_list(void *ll, void *cmp)
|
|
{
|
|
tommy_list_sort (ll, cmp);
|
|
}
|
|
|
|
void remove_elem_list(void *ll, void *ll_node)
|
|
{
|
|
return tommy_list_remove_existing(ll, ll_node);
|
|
}
|
|
|
|
void *get_first_node_list(void *ll)
|
|
{
|
|
return tommy_list_head(ll);
|
|
}
|
|
|
|
void *get_first_elem_list(void *ll)
|
|
{
|
|
if (tommy_list_head(ll))
|
|
return tommy_list_head(ll)->data;
|
|
else
|
|
return NULL;
|
|
}
|
|
|
|
void *get_data_from_node(void *node)
|
|
{
|
|
if (node)
|
|
return ((tommy_node *)node)->data;
|
|
else
|
|
return NULL;
|
|
}
|