Организация алгоритма поиска
Алгоритм поиска, который мы напишем в этой главе, связан с проблемой планиро¬вания перелета из пункта А в пункт Б. В первую очередь необходимо выяснить, какие возможности предстоит реализовать. Вот краткий список.
• Структура данных, реализующих узел.
• Узел может содержать ссылки на другие узлы.
• Каждый узел имеет описание и уникальный идентификатор, чтобы отличать его от других узлов.
• Все узлы имеют полетную информацию.
• Алгоритм перебирает узлы и отслеживает путь.
• Путь возвращается как список узлов.
На рис. 4.7 приведена структура данных, созданная на основании проблемы плани¬рования перелета между двумя пунктами.
Как показан» на рис. 4.7, каждый узел (node) маршрута перелета описывают три :новных атрибута.
• Название города (city name). Описание, которое будет использовать пользователь при определении начального и конечного пункта.
• Координаты (coordinates). Иллюстрация того, как города располагаются относи¬тельно друг друга.
• Связи (connections). Представление связи между двумя городами. Как и в реаль¬ной жизни, не все города имеют сообщение с другими городами.
В контексте этой главы есть только два проекта — библиотека классов, которая со-ержит алгоритм поиска в глубь, и приложение проверки. Структура проекта представ-;на на рис. 4.8. Как и в примерах предыдущих глав, не забудьте добавить ссылку на би-тиотеку классов (SearchSolution) и установить проект проверки (TestSearchSolution) как стартовый.