Функция построения дерева разбита на ряд более специализированных для облегчения чтения кода и отлажена их работа