Замечания по заданию 5
Рекомендую сразу добавить в узел указатель на "родителя", а не только на потомков, а также переменную, отвечающую за баланс поддеревьев (или за "цвет", если реализуете красно-чёрное дерево), это поможет при написании балансировки. Также рекомендую сразу написать деструктор для дерева.