Ответ в теме: Построить граф с использованием динамических структур данных. Обходы графа

      Комментарии к записи Ответ в теме: Построить граф с использованием динамических структур данных. Обходы графа отключены
#1936

Хранить граф в виде списков можно по-разному, например, узлом списка может быть кортеж вида: (Source, [List_of_destination_nodes]), тогда граф
Если есть граф:

edge(a, b).
edge(a, c).
edge(b, d).

Можно представить в виде списков следующих образом:
[(a, [b, c]), (b, [d]), (c, [])].
С обработкой такого графа проблем нет, страдает лишь эффективность. Вы можете по прежнему эффективно выполнять поиск узла в графе – теперь для этого нужно использовать предикат member:
member((Src, Dest), Graph).
Однако, удаление элемента из списка (узла из графа) – это медленная операция.