Приветствую всех, если у вас проблема с решением этой задачи пишите, оно у меня есть!
Часто делегаты можно использовать для тонкой настройки алгоритмов, что позволит использовать один и тот же код для решения несколько разных задач.
Скачайте проект проекте Delegates.TreeTraversal
Перед вами три задачи:
- Дано дерево категорий продуктов, в каждой категории могут быть другие категории и собственно продукты. Вам нужно вывести список продуктов.
- Дано дерево задача, каждая задача может содержать подзадачи. Вам нужно вывести список таких задач, у которых нет подзадач.
- Дано бинарное дерево, у которого каждый лист содержит величину, а каждый не-лист не содержит величины. Вам нужно вывести все величины, содержащиеся в этом дереве.
Вам нужно написать один алгоритм обхода дерева, который бы принимал в качестве аргументов делегаты, объясняющие алгоритму, как обходить дерево и какие величины выводить.
Слишком сложные делегаты могут затруднять чтение кода, поэтому из всего многообразия решения выберите решение, максимально понятное неподготовленному читателю.
После этого вам нужно написать реализации методов, указанных в тестах, так, чтобы тесты заработали.
1 2 3 4 5 6 7 8 9 10 11 |
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Delegates.TreeTraversal { public class Traversal<TTree, TValue> { Func<TTree, IEnumerable<TValue>> nodeHandler; |
Стоимость решения этой задачи всего 100 рублей, закажи решения у меня 🙂