Работа с деревьями и строками: Нужно реализовать метод поиска - C#

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

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

Добрый день,есть такой вопрос: Есть класс Treenode со структурой
 class TreeNode
    {
        public List<TreeNode> Children;
        public string Name;
}
Нужно реализовать метод поиска
Find(TreeNode root,string names)
где names это имена из TreeNode разделенные "," Например Find(root,"first,second,third")-вернет Treenode с именем third Подскажите,как это сделать, заранее спасибо!

Решение задачи: «Работа с деревьями и строками: Нужно реализовать метод поиска»

textual
Листинг программы
using System;
using System.Collections;
using System.Collections.Generic;
 
namespace ConsoleApplication155
{
    class Program
    {
        static void Main(string[] args)
        {
            TreeNode root = new TreeNode();
 
            var n1 = new TreeNode { Name = "A"};
            var n2 = new TreeNode { Name = "B" };
            var n3 = new TreeNode { Name = "C" };
            var n4 = new TreeNode { Name = "D" };
 
            root.Children.Add(n1);
            n1.Children.Add(n2);
            n2.Children.Add(n3);
            n2.Children.Add(n4);
 
            var node = root.FindChildren("A,B,D");
 
            Console.WriteLine(node.Name);
            Console.ReadLine();
        }
    }
 
    class TreeNode
    {
        public List<TreeNode> Children = new List<TreeNode>();
        public string Name;
 
        public TreeNode FindChildren(string path)
        {
            return FindChildren(path.Split(',').GetEnumerator());
        }
 
        public TreeNode FindChildren(IEnumerator enumerator)
        {
            if (!enumerator.MoveNext())
                return this;
            return Children.Find(n => n.Name == (string)enumerator.Current).FindChildren(enumerator);
        }
    }
}

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


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

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

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