如何在某些数据结构中表示奇怪的图形

Wil*_*uck 10 python language-agnostic graph data-structures

表示图形的简单方法是使用以下形式的数据结构:

{1:[2,3],
 2:[1,3],
 3:[1,2]}
Run Code Online (Sandbox Code Playgroud)

此字典中的键是节点,并且边缘由它们连接的其他节点的列表表示.如果链接不对称,则此数据结构也可以轻松表示有向图:

{1:[2],
 2:[3],
 3:[1]}
Run Code Online (Sandbox Code Playgroud)

我对图理论知之甚少,所以我要提出的建议可能已经有了一个简单的解决方案,但我不知道该寻找什么.我遇到的情况是图形有些指向,取决于您所在的节点和您来自的节点.为了说明,我有一张图:

奇怪的方向图

想象一下你在卡丁车中沿着边缘A加速,而在节点1处,你将左边悬挂在边缘B上.由于你走得太快,当你击中节点3时,你被迫继续前进到边缘F.但是,如果你来自边缘F,你将能够继续前进到边缘E或B.很明显,节点3连接到1和2,但是否可以从该节点到达它们取决于哪个你来自哪个方向.

我想知道是否有一个图论理论概念描述了这个和/或是否有一个简单的数据结构来描述它.虽然我将在python中编写代码,但我会从任何合理适用的语言中获取建议.

编辑:我试图发布一个图像与此同时,但我不确定它是否出现.如果它不在这里是图像的链接

编辑2:我应该清楚.发布的图像是完整图形的一部分,其中屏幕上有更多节点来自A,D和F.

unu*_*tbu 7

这可以用有向图表示.

图中的节点可以表示为图中的两个节点.将节点视为代表街道特定边上的位置 - 边缘就像入站和出站通道.

在此输入图像描述