Самостоятельные упражнения
Ниже приведен ряд упражнений, позволяющих приобрести практические навыки пс темам этой главы.
1. Класс Node был объявлен как ссылочный тип. Подумайте, в каком случае былс
бы лучше объявить тип Node как тип значения? И если придумаете, перепишите
тип Node.
2. Статическая переменная-член Node. RootNodes предоставлена для использования каждым классом. Существует ли способ отделить переменную-член RootNode; так, чтобы пользователь типа Node не знал расположение дерева?
3. Я обсуждал проблему замочной скважины при резервировании массива. Но есть еще проблема связи между Node и DepthFirstSearch. Объясните, почему есть проблема связи, и опишите альтернативный алгоритм, который не имеет такой проблемы.
4. Исправьте функцию CanContinueSearch () так, чтобы для двух любых городов был найден оптимальный маршрут перелета. Обратите внимание, вы должнь: дополнить набор проверок, чтобы проверять различные сценарии.
5. Реализуйте алгоритм поиска в ширину. Алгоритм поиска в ширину будет обы¬скивать каждую связь перед переходом по дереву вниз. Подсказка: измените по¬ведение метода FindNextLeg () .