Data structure various algorithms for binary trees