Position::left
, поскольку он использует v->left
без проверки на ноль, будет продолжаться до тех пор, пока он вызывается. Таким образом, производительность менее важна, чем безопасность.
Тем не менее, ваш class Position
делает очень мало поверх struct Node
. Это кажется ненужным (и в действительности скрывает поля типа par
).
Чего вы пытаетесь достичь sh здесь?