Работа с узлами: поиск определённого потомка - C#

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

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

1. Дописать функцию ContainsChildWithValue, которая определяет, содержат ли потомки узла (по всей глубине иерархии) указанное значение. 2. Прокомментировать проблемы в коде.
using System;
using System.Collections.Generic;
namespace Test
{
 class Program
 {
 class Node
 {
 public IComparable Value { get; set; }
 public List<Node> Children { get; set; }
 public bool ContainsChildWithValue(IComparable value)
 {
 ???;
 }
 }
 static void Main(string[] args)
 {
 Node root = new Node();
 root.Children.Add(new Node() { Value = 1 });
 root.Children.Add(new Node() { Value = 2 });
 bool result = root.ContainsChildWithValue(1);
 Console.ReadLine();
 }
 }
}

Решение задачи: «Работа с узлами: поиск определённого потомка»

textual
Листинг программы
class Node<T> where T : IEquatable<T>
{
    public T Value { get; set; }
    public List<Node<T>> Children { get; set; }
 
    private bool FindChild(Node<T> startNode, T value) {
        if (startNode.Children == null || startNode.Children.Count == 0) {
            if (startNode.Value.Equals(value))
                return true;
        }
        else {
            foreach (Node<T> node in startNode.Children) {
                FindChild(node, value);
            }
        }
 
        return false;
    }
 
    public bool ContainsChildWithValue(T value) {
        return FindChild(this, value);
    }
}

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


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

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

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