Recipe: Implementing custom data structures: Red Black Trees - Parts I & II