表示图的一种简单方法是使用以下形式的数据结构:
{1:[2,3],
2:[1,3],
3:[1,2]}
这个字典中的键是节点,边由它们连接到的其他节点的列表表示。如果链接不对称,此数据结构也可以轻松表示有向图:
{1:[2],
2:[3],
3:[1]}
我不太了解图论,所以我要提出的建议可能已经有了一个简单的解决方案,但我不知道要寻找什么。我遇到过我认为是图形在某种程度上是定向的情况,这取决于你所在的节点和你来自的节点。为了说明,我有一张图:
假设您开着卡丁车沿着 A 边超速行驶,在节点 1 处左转至 B 边。由于您的速度如此之快,当您到达节点 3 时,您将被迫继续行驶到边上F. 但是,如果您来自边 F,则可以继续到边 E 或 B。很明显,节点 3 连接到 1 和 2,但您是否可以从该节点到达它们取决于你来自哪个方向。
我想知道是否有一个图论概念来描述这个和/或是否有一个简单的数据结构来描述它。虽然我将使用 Python 编写代码,但我会听取任何合理适用的语言的建议。
编辑: 我试着贴一张图片来配合这个,但我不确定它是否出现了。如果不是这里的链接到 image
编辑 2: 我应该很清楚。发布的图像是完整图的一部分,其中 A、D 和 F 屏幕外的节点更多。
最佳答案
关于python - 如何在一些数据结构中表示一个奇怪的图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6376586/