Listing 1

typedef struct __ELEMENT
{
    char            *key;
    long            key_length;

    void            *value;
    unsigned long    hash;

    struct __ELEMENT    *next;
    struct __ELEMENT    *prev;
    struct __ELEMENT    *hash_prev;
    struct __ELEMENT    *hash_next;

    ARRAY_DESTROY_FUNCTION  destroy_function;
} ELEMENT, *PELEMENT;