Реферат: Структуры данных бинарное упорядоченное несбалансированное дерево
OK = true;
}
else //посмотреть налево
if (P->Left != NULL) //левый узел не NULL
P = P->Left; //обход слева
else { //левый узел -лист и надо добавить к нему элемент
Iendleft(P, X); //и конец
OK = true;
}
} //цикла while
}
void TTree::Add(TInfo Key)
{
if (Root == NULL)
IniTree(Root, Key);
else Tree_Add(Root, Key);
}
//-------------------------------------------------------------static void delete_ (PItem& P, TInfo X);
static void Del(PItem& R, PItem& Q)
//процедура удаляет узел имеющий двух потомков, заменяя его на самый правый
//узел левого поддерева
{
if (R->Right != NULL) //обойти дерево справа
Del(R->Right, Q);
else {
//дошли до самого правого узла
//заменить этим узлом удаляемый
Q->Key = R->Key;
Q = R;