Форум программистов, компьютерный форум, киберфорум
Lisp
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 29.11.2012
Сообщений: 34

Построить граф

27.12.2012, 22:18. Показов 1030. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Пусть граф представлен списком вершин (вершины помечены атомами) и списком ребер (каждое ребро, в свою очередь, список из двух вершин). Необходимо написать функцию, которая, учитывая список вершин, переводит список ребер в список списков смежных вершин указанного далее вида. Например, исходный граф задан:
1) список вершин (b c e d a f);
2) список ребер ((b c) (с с) (a d) (e d) (e a)).
Необходимая функция преобразует эту информацию в список списков смежных вершин:
((b с) (c (b c)) (e (d a)) (d (e a)) (a (d e)) (f nil))
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
27.12.2012, 22:18
Ответы с готовыми решениями:

Граф задан цепными списками. Построить его реберный граф
Дорогие форумчане, прошу помочь с написанием данной программы: Граф задан с помощью цепных списков. Построить его реберный граф.

Построить граф
Имеется 6 предприятий. Из них каждое сотрудничает только с 7 предприятиями. Построить соответствующий граф.

Построить граф
нарисуйте граф с 6 вершинами у которого 2 вершины имеют одинаковую степень и дополнение к нему

4
Эксперт С++
 Аватар для Nameless One
5828 / 3479 / 358
Регистрация: 08.02.2010
Сообщений: 7,448
28.12.2012, 03:10
Lisp
1
2
3
4
5
6
(defun neighbor-vertices (vertices edges &key (test #'eql))
  (loop for vertex in vertices
     collect (list vertex
                   (loop for (e1 e2) in edges
                      when (funcall test vertex e1) collect e2 else
                      when (funcall test vertex e2) collect e1))))
Lisp
1
2
3
CL-USER> (neighbor-vertices '(b c e d a f) '((b c) (c c) (a d) (e d) (e a)))
((B (C)) (C (B C)) (E (D A)) (D (A E)) (A (D E)) (F NIL))
CL-USER>
1
0 / 0 / 0
Регистрация: 29.11.2012
Сообщений: 34
28.12.2012, 05:48  [ТС]
Спасибо большое.
0
Супер-модератор
Эксперт функциональных языков программированияЭксперт Python
 Аватар для Catstail
38190 / 21125 / 4307
Регистрация: 12.02.2012
Сообщений: 34,732
Записей в блоге: 14
28.12.2012, 10:40
Или так:

Lisp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
(defun graph (e v)
 (let ((res nil) (item nil))
  (dolist (i e res)
    (setq item nil)
    (dolist (j v t)
      (when (and (eq (car j) i) (not(member (cadr j) item))) (setq item (cons (cadr j) item)))
      (when (and (eq (cadr j) i) (not(member (cadr j) item))) (setq item (cons (car j) item))))
      (setq res (cons (list i item) res)))))     
 
==> graph
 
(graph '(b c e d a f) '((b c) (c c) (a d) (e d) (e a)))
 
==> ((f NIL) (a (e d)) (d (e a)) (e (a d)) (c (c b)) (b (c)))
1
0 / 0 / 0
Регистрация: 29.11.2012
Сообщений: 34
28.12.2012, 11:54  [ТС]
Спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.12.2012, 11:54
Помогаю со студенческими работами здесь

Построить граф
можете привести простейший пример проги которая выдаёт граф просто чертёж?

Построить граф
Задан граф G = {0: , 1: , 2: , 3: , 4: , 5: } Как его можно изобразить в визуальной форме на бумажке?

Построить граф G
1. Построить граф G *= (Е *, G *) путем достройки начального графа G = (Е, G) с помощью добавления новых вершин и дуг GXi. 2. Выделить из...

Построить граф на плоскости
Неориентированный граф G задан матрицей смежности 0, 1, 1, 1, 0, 0, 0 1, 0, 1, 0, 0, 0, 0 1, 1, 0, 1, 1, 0, 0 1, 0, 1, 0, 0, 1,...

Построить граф цепи
Имеем схемку Если я правильно понял материал, то схема имеет 4 узла и 7 ветвей - R1 , R2+e3 ,R5 , R4+e1 , e2 , R3, j1 Правильно?...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru