public BiNode addChild(BiNode child){
        if(this.value_type.compareTo(child.value_type) < 0){
            child.father = this.father;
            return child.addChild(this);
        }else{
            if(children[0] == null){
                children[0] = child;
                child.father = this;
            }else
            if(children[1] == null){
                children[1] = child;
                child.father = this;
            }else{
                
                if(this.value_type.compareTo(child.value_type) == 0){
                    child.addChild(children[1]);
                    child.father = this;
                    children[1] = child;
                }else{
                    children[1] = children[1].addChild(child);
                }
                //TODO реалізувати складання оптимальної суперпозиції
                odd ^= 1;
            }
            return this;
        }
    }