Как представить странный граф в некоторой структуре данных

Простой способ представить граф - это структура данных в форме:

{1:[2,3],
 2:[1,3],
 3:[1,2]}

Где ключи в этом словаре являются узлами, а ребра представлены списком других узлов они связаны cted to. Эта структура данных может также легко представить ориентированный граф, если связи не симметричны:

{1:[2],
 2:[3],
 3:[1]}

Я мало знаю о теории графов, поэтому то, что я собираюсь предложить, может уже иметь простое решение, но я не не знаю, что искать. Я столкнулся с ситуацией, когда граф несколько ориентирован в зависимости от того, на каком узле вы находитесь, и от узла, из которого вы пришли. Для иллюстрации у меня есть рисунок:

Strangely Directional Graph

Представьте, что вы мчитесь по краю A на картинге, и в узле 1 вы вешаете левый край на край B. Поскольку вы едете так быстро, когда вы нажимаете узел 3 вы вынуждены перейти на ребро F. Однако, если бы вы двигались с ребра F, вы могли бы перейти к ребру E или B. Ясно, что третий узел связан с 1 и 2, но независимо от того, Невозможно связаться с ними из этого узла, зависит от того, откуда вы пришли.

Мне интересно, существует ли концепция теории графов, которая описывает это, и / или существует ли простая структура данных для ее описания. Пока я буду писать свой код на python, я воспользуюсь советами на любом приемлемом языке.

Изменить: Я попытался опубликовать изображение, чтобы согласиться с этим, но я не уверен, появляется ли оно. Если его нет, вот ссылка на изображение

Edit 2: Я должен был быть ясным. Размещенное изображение предназначено для того, чтобы быть частью полного графа, в котором есть больше узлов за пределами экрана от A, D и F.

10
задан Wilduck 16 June 2011 в 18:33
поделиться