extern char * alloc_string(char * str); extern HashEntry * hash_copy_entry(HashEntry * e); extern HashTable * hash_copy_table(HashTable * table); extern void hash_delete(HashTable * table , char * key); extern char * hash_find(HashTable * table , char * key); extern void hash_init(HashTable * table , int size , EqualFunction equal ,HashcodeFunction hash_code); extern void free_hash(HashTable * table , FreeFunction free_fun); extern void hash_insert(HashTable * table , char * data , char * key); extern void hash_map(HashTable * table , MappableFunction func); extern char * hash_replace(HashTable * table , char * data , char * key); extern int string_equal(char * s1 , char * s2); extern int string_hash(char * s , int size);