Практикум по курсу "Алгоритмизация и программирование". Часть 2. Андрианова А.А - 94 стр.

UptoLike

А.А. Андрианова, Л.Н. Исмагилов, Т.М. Мухтарова .
}
help=root;
// двигаемся по узлам дерева, начиная с корня,
// пока не найдем место вставки нового элемента
while (true)
{
if(help->info>key)
// в текущем узле help значение больше нового
if(help->left==NULL)
{
// если у узла help нет левого
// поддерева, новый узел
// «подцепляется» к узлу help слева
newNode=new Tree;
newNode->info=key;
newNode->left=NULL;
newNode->right=NULL;
help->left= newNode;
return;
}
else
// если существует левое поддерево,
// перемещаемся к левому потомку help
help=help->left;
else
// в текущем узле help значение
// меньше или равно новому
if(help->right==NULL)
{
// если у узла help нет правого
// поддерева, новый узел
// «подцепляется» к help справа
newNode=new Tree;
newNode->info=key;
newNode->left=NULL;
newNode->right=NULL;
help->right= newNode;
return;
}
else
// если существует правое поддерево,
// перемещаемся к правому потомку help
help=help->right;
}
}
94
А.А. Андрианова, Л.Н. Исмагилов, Т.М. Мухтарова               .
            }
            help=root;
            // двигаемся по узлам дерева, начиная с корня,
            // пока не найдем место вставки нового элемента
            while (true)
            {
                 if(help->info>key)
                      // в текущем узле help значение больше нового
                      if(help->left==NULL)
                      {
                           // если у узла help нет левого
                           // поддерева, новый узел
                           // «подцепляется» к узлу help слева
                           newNode=new Tree;
                           newNode->info=key;
                           newNode->left=NULL;
                           newNode->right=NULL;
                           help->left= newNode;
                           return;
                      }
                      else
                           // если существует левое поддерево,
                           // перемещаемся к левому потомку help
                           help=help->left;
                 else
                      // в текущем узле help значение
                      // меньше или равно новому
                      if(help->right==NULL)
                      {
                           // если у узла help нет правого
                           // поддерева, новый узел
                           // «подцепляется» к help справа
                           newNode=new Tree;
                           newNode->info=key;
                           newNode->left=NULL;
                           newNode->right=NULL;
                           help->right= newNode;
                           return;
                      }
                      else
                           // если существует правое поддерево,
                           // перемещаемся к правому потомку help
                           help=help->right;
            }
    }

                                            94