HashTable.h 627 B

123456789101112131415161718192021222324252627
  1. #ifndef HASHTABLE_H
  2. #define HASHTABLE_H
  3. //#include "Array.h" remove temporally
  4. #include "array.h"
  5. typedef struct {
  6. char *key;
  7. void *data;
  8. } Entry;
  9. Entry* EntryNew(char *key, void *data);
  10. int EntryCompare(Entry *e1, Entry *e2);
  11. int hash(char *key, int range);
  12. #define HashTable Array
  13. HashTable* HashTableNew(int size);
  14. void HashTableFree(HashTable *table);
  15. void HashTablePut(HashTable *table, char *key, void *data);
  16. void *HashTableGet(HashTable *table, char *key);
  17. void HashTableEach(HashTable *table, FuncPtr1 f);
  18. Array* HashTableToArray(HashTable *table);
  19. void HashTableTest();
  20. #endif