Мне необходимо удалить узел дерева, если у него имеются двое детей. Находил примеры удаления на других языках, но без понятия, как это реализовать на C#. Может кто-нибудь помочь? Код:
public void deleteElement(int per_sent)
{
TreeNode value = new TreeNode();
value.data.per_sent = per_sent;
if (deleteElementRecursion(_root, value))
Console.WriteLine("Данные о дилере успешно удалены!");
else
Console.WriteLine("Данные о дилере не были найдены!");
}
private bool deleteElementRecursion(TreeNode currentNode, TreeNode value)
{
TreeNode current, parent;
bool right_left;
current = FindWithParent(_root, out parent, value, out right_left);
if (current == null)
return false;
if(current.Right == null && current.Left == null)
{
if(parent != null)
{
if (right_left)
{
parent.Right = parent.Left;
parent.Left = null;
}
else
parent.Left = null;
}
} else if(current.Right != null && current.Left == null)
{
if(parent != null)
{
if (right_left)
parent.Right = current.Right;
else
parent.Left = current.Right;
}
} else if(current.Right == null && current.Left != null)
{
if(parent != null)
{
if (right_left)
parent.Right = current.Left;
else
parent.Left = current.Left;
}
} else
{
// Удаление узла с двумя потомками
}
return true;
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Изучаю javascriptДобрался до ajax запросов
Как сделать чтобы можно было установить шанс выпадения числа в процентах