Quite one of the more complex algorithms I had to deal with: Search Trees