using GrokAlgorithms.Chapter5_BreadthFirstSearch; // Тут используется реализация алгоритма поиска в ширину на графе, BFS. // Поиск в глубину (DFS) точно такой же, но вместо очереди использует стек int count = 0; // Команда для построения дерева TreeNode BuildTreeCommand(int value, int depth, int branchingFactor) { var node = new TreeNode(value) { Comment = $"{count++}" }; if (depth == 0) return node; for (int i = 1; i <= branchingFactor; i++) node.Children.Add(BuildTreeCommand(value + i * 10, depth - 1, branchingFactor)); return node; } // Команда для печати дерева void PrintTreeCommand(TreeNode node, string indent = "") { Console.WriteLine($"{indent}{node.Value} [{node.Comment}] {(node.Selected ? " Selected" : "")}"); foreach (var child in node.Children) PrintTreeCommand(child, indent + " "); } var root = BuildTreeCommand(1, 3, 2); var found = Bfs.Search(root, (num) => num > 25); if (found != null) found.Selected = true; PrintTreeCommand(root);