Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Определение связности графа на Лиспе 
:(
    Опции темы
МилаР
  Дата 7.5.2010, 05:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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.

Буду очень благодарна любой помощи. 



PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума LISP
Void
  • Пожалуйста, создавайте темы с содержательными названиями.
  • Lisp — это целое семейство языков. Всегда указывайте в теме используемый диалект (Common Lisp, Scheme и т.д.).
  • Уважаемые учащиеся, здесь всегда рады помочь Вам, но не делать за Вас вашу работу. У вас гораздо больше шансов получить помощь, если Вы приложите усилия и поделитесь с нами проблемами и результатами. В противном случае добро пожаловать в раздел Центр Помощи.
  • Получив ответ на интересующий Вас вопрос, не забудьте пометить его как решённый.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Void.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | LISP | Следующая тема »


 




[ Время генерации скрипта: 0.0381 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.