>>41
There are utility libraries for that sort of thing, as you know. I mentioned "glib" just now; it's even got a sane license on it, and allows for as much ADTey goodness as a C library ever will. (i.e. lots of casting to and from renamed void pointers...)
This way, there's no whining about "why don't you use the standard library ADTs? this is not portable! I don't want to learn yet another library!". I find this a welcome bonus.