Реализовать два алгоритма обхода графа (DFS — поиск в глубину и BFS — поиск в ширину), используя паттерн проектирования «Шаблонный метод».
Для переопределения должны быть доступны следующие методы:
Оба алгоритма должны иметь унифицированный интерфейс (реализуя, таким образом, паттерн «Стратегия»).
Абстракцию графа желательно вынести в отдельный класс, сделав его либо параметром шаблона, либо передавая в алгоритм указатель/ссылку на объект базового класса представления графа.