I'm working on a C project which defines a hash.h
header, containing an intrusive hash structure and its interface, as well as a list.h
header containing an intrusive list and its interface.
The hash is implemented using lists, and there are no other data structures available to support the hash's implementation, so abstraction isn't worth very much in this context.
So leaving abstraction aside, is there any advantage of using an intrusive hash instead of an intrusive list?