![]() |
|
|
![]()
|
|
| МилаР |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 7.5.2010 Репутация: нет Всего: нет |
Пыталась разобраться сама, но думаю это не тот случай, когда можно, быстро все понять.
Задание такое: Определение связности графа на Лиспе Напишите программу на языке XLisp, определяющую, является ли данный неориентированный граф связным. Указание: запрограммируйте предварительно предикат (path X Y), проверяющий, существует ли путь из вершины X в вершину Y. Ещё есть Алгоритм поиска в глубину в графе для реализации на Лиспе: Функция (depth V,E,x,y,p,end) выдает путь (список вершин): V - список вершин графа; E - список ребер; x - стартовая (начальная) вершина, при рекурсивном вызове depth, x - текущая вершина, откуда ведется поиск пути; y - список вершин - соседей вершины x; p - накапливаемый путь (накапливающий параметр), в начале поиска - пустой список, вершины накапливаются в обратном пройденному порядке; end - предикат (функциональный аргумент), которому должна удовлетворять целевая (конечная) вершина искомого пути. If x- целевая вершина , then получаем результат , добавляя к пути p вершину x, else if список y вершин-соседей пуст then ответ = nil else if первая вершина в списке y принадлежит пройденному пути p then вызываем рекурсивно функцию depth для хвоста списка y else if первая вершина в списке y не принадлежит пройденному пути p then вызываем рекурсивно функцию, накапливая параметр p и меняя параметры x и y else вызываем рекурсивно функцию depth для хвоста списка y. Буду очень благодарна любой помощи. |
|||
|
||||
![]()
|
| Правила форума LISP | |
|
|
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | LISP | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |