Balancer> void append(int n)
Прежде чем делать
_ptr = tmp;
надо делать
delete _ptr;
иначе - лийк.
Кроме того, отсуствует деструктор, где надо делать то-же самое.
Balancer> void remove(int pos)
вместо
p<_size-1
надо
p<_size-2
у тебя, надо сказать, такой код работал на честном слове.
По итогам экзамена - ты уволен. Просьба собрать свои вещи и покинуть рабочее помещение.