python - 如何在一些数据结构中表示一个奇怪的图

标签 python language-agnostic data-structures graph

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

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

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

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

我不太了解图论,所以我要提出的建议可能已经有了一个简单的解决方案,但我不知道要寻找什么。我遇到过我认为是图形在某种程度上是定向的情况,这取决于你所在的节点和你来自的节点。为了说明,我有一张图:

Strangely Directional Graph

假设您开着卡丁车沿着 A 边超速行驶,在节点 1 处左转至 B 边。由于您的速度如此之快,当您到达节点 3 时,您将被迫继续行驶到边上F. 但是,如果您来自边 F,则可以继续到边 E 或 B。很明显,节点 3 连接到 1 和 2,但您是否可以从该节点到达它们取决于你来自哪个方向。

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

编辑: 我试着贴一张图片来配合这个,但我不确定它是否出现了。如果不是这里的链接到 image

编辑 2: 我应该很清楚。发布的图像是完整图的一部分,其中 A、D 和 F 屏幕外的节点更多。

最佳答案

这可以用 directed graph 表示.

图中的节点可以表示为图中的两个节点。 将节点视为代表街道特定两侧的位置 - 边缘就像是进出车道。

enter image description here

关于python - 如何在一些数据结构中表示一个奇怪的图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6376586/

相关文章:

python - 随机选择一个 5 位数字和单独选择每个数字有什么区别?

algorithm - 我如何评估图形着色谜题的难度?

java - 高效的 hashCode() 实现

C: 存储命令历史的数据库

python - Spark 由 : java. lang.StackOverflowError 窗口函数引起?

python - 在运行时用函数重载方法

python - 使用 OpenCV 在 Python 中计算图像中的黑色像素数

algorithm - 我可以在解决这个算法相关问题时寻求一些指导吗?

java - 我应该在以下示例中使用哪种 JavaFX 数据结构?

python - 行走动画循环