Defines a tree abstract data type