t_hashset * hashset_new(const t_type *type)
Initializes a new empty set.
void hashset_put(t_hashset *hs, const void *val)
Adds a copy of the specified element to the hashset.
void queue_delete(t_queue *queue)
Deletes the queue and frees all memory taken by its contents, or does nothing if the argument is NULL...
Doubly-linked list of generic items.
void * queue_dequeue(t_queue *queue)
Removes and returns the item on this queue that was least recently added.
t_hashset * hashset_copy(const t_hashset *hs)
Copies the hashset and all it contents.
t_queue * hashset_vals(const t_hashset *hs)
Returns a queue with all the elements in the set.
A dynamically resizing linear-probing hashset.
const t_type * type
The type of elements in the hashset.