The code is split between .h and .c files Rebalancing and a few more operations are library functions There is a little more work involved in porting to user space The implementation is very efficient, both in size and speed The suggested traversal of the tree is iterative, not recursive rudo$ nm --size-sort linux_rbtree.o 00000021 T rb_first 00000021 T rb_last 00000042 T rb_next 00000042 T rb_prev 0000005d T rb_replace_node 0000006d t __rb_rotate_left 0000006d t __rb_rotate_right 000000eb T rb_insert_color 000002c9 T rb_erase A sorting program built with linux-rbtree is Almost as fast as /usr/bin/sort Comparable with trivial-tree on random data Slower than qsort, but data is always sorted during operation