Работа с деревьями и строками: Нужно реализовать метод поиска - C#
Формулировка задачи:
Добрый день,есть такой вопрос:
Есть класс Treenode со структурой
Нужно реализовать метод поиска
где names это имена из TreeNode разделенные ","
Например Find(root,"first,second,third")-вернет Treenode с именем third
Подскажите,как это сделать, заранее спасибо!
class TreeNode { public List<TreeNode> Children; public string Name; }
Find(TreeNode root,string names)
Решение задачи: «Работа с деревьями и строками: Нужно реализовать метод поиска»
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); } } }
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д