Implemeted using a double-ended block list, which is just a common approach.
Implemented using red black tree. It's not an elegant implementation,
but all the lines containing "shit" can be removed if erase(it++)
and erase(it--)
are not required.
Run check-all.sh
and memcheck-all.sh
to automatically test the code.