Ответ лежит здесь:
while (true)
{
parent = current;
if (data < current.Data)
{
current = current.LeftChild; // THIS LINE
if (current == null)
{
parent.LeftChild = newNode;
break;
}
}
Как вы видите, ток переоценивается, и теперь он является левым «потомком» самого себя. После первых 3 add
использования дерево должно выглядеть так:
50
/ \
40 60
Итак, первая итерация - ток равен 50, вторая итерация идет влево (определение BST) и становится 40. Следующий итерационный ток будет содержать NULL
, (левый потомок 40) и будет помещен внутри BST.