Поиск и удаление одинаковых узлов в бинарном дереве - C#

Узнай цену своей работы

Формулировка задачи:

Здравствуйте! у меня есть бинарное дерево, у которого нужно найти одинаковые узлы, а затем их удалить. Была идея использовать какой-нибудь из обходов для нахождения одинаковых значений, но не знаю как это реализовать...
class Node
    {
        public int data;
        public Node left, right;
    }
    class Tree
    {
        Node root;
        public Tree()
        {
            root = null;
        }
        public Node ReturnRoot()
        {
            return root;
        }
        public void Insert(int id)
        {
 
            Node newNode = new Node();
            newNode.data = id;
            if (root == null)
                root = newNode;
            else
            {
                Node current = root;
                Node parent;
                while (true)
                {
                    parent = current;
                    if (id <= current.data)
                    {
                        current = current.left;
                        if (current == null)
                        {
                            parent.left = newNode;
                            return;
                        }
                    }
                    else
                    {
                        current = current.right;
                        if (current == null)
                        {
                            parent.right = newNode;
                            return;
                        }
                    }
                }
            }
        }

Решение задачи: «Поиск и удаление одинаковых узлов в бинарном дереве»

textual
Листинг программы
void RemoveDuplicates(Node current)
{
      Node duplicate;
      while ((duplicate = Find(current.Left, current.Value)) != null)
         Delete(duplicate);
 
      RemoveDuplicates(current.Left);
      RemoveDuplicates(current.Right);
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

12   голосов , оценка 3.75 из 5
Похожие ответы