func (t *AvlTree) Put(value interface{}) {
	t.root = t.put(value, t.root)
}
Put adds element to the tree
package tree
type AvlTree struct {
	root *avlNode
	comp func(a, b interface{}) bool
}
type avlNode struct {
	size   int
	height int
	left   *avlNode
	right  *avlNode
	child  [2]*avlNode
	value  interface{}
}
func NewAvlTree(comp func(a, b interface{}) bool) *AvlTree {
	t := &AvlTree{
		comp: comp,
	}
	return t
}
func (t *AvlTree) Size() int {
	if t.root == nil {
		return 0
	}
	return t.root.size
}
func (t *AvlTree) IsEmpty() bool {
	return t.root == nil
}
func (t *AvlTree) Clear() {
	t.root = nil
}