Бинарные деревья. Удаление узла с двумя потомками

119
30 июня 2019, 18:30

Мне необходимо удалить узел дерева, если у него имеются двое детей. Находил примеры удаления на других языках, но без понятия, как это реализовать на 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;
}
READ ALSO
Добавление записи в таблицу и на страницу с помощью ajax

Добавление записи в таблицу и на страницу с помощью ajax

Изучаю javascriptДобрался до ajax запросов

144
Как парсить сайты с авторизацией?

Как парсить сайты с авторизацией?

Парсер с использованием Anglesharp

144
Не работает условие (Unity)

Не работает условие (Unity)

Почему не работает условие?

116
Шанс выпадения числа в Random.Range

Шанс выпадения числа в Random.Range

Как сделать чтобы можно было установить шанс выпадения числа в процентах

106