【发布时间】:2020-07-02 15:59:42
【问题描述】:
目前,我正在创建一个函数来检查图形是否是无向的。 方式,我的图表是这样存储的。这是 3 个节点 1、2、3 的无向图。
graph = {1: {2:{...}, 3:{...}}, 2: {1:{...}, 3:{...}}, 3: {1:{...}, 2:{...}}}
{...} 表示每个节点中连接的字典的交替层。它是无限循环的,因为它是相互嵌套的。
关于图表的更多细节:
- 键是指节点,它的值是指字典,其中节点连接到键。
- 示例:具有无向边的两个节点 (1, 2):
graph = {1: {2: {1: {...}}}, 2: {1: {2: {...}}}} - 示例 2:两个节点 (1, 2) 的有向边从 1 到 2:
graph = {1: {2: {}}, 2: {}}
我目前判断一个图是否无向的方法是检查图中的边数是否等于 (n*(n-1))/2(n 表示节点),但这不能区分 15 条有向边和 15 条无向边,那么我还有什么其他方法可以确认我的图是无向的?
【问题讨论】:
-
你能提供一个样本字典吗?另外,是否允许使用自边缘?
-
@BalajiAmbresh 不,我忽略了自我边缘以使事情变得更容易,您能否详细说明示例字典的含义。
-
您能否提供一个
graph的示例并解释键/值代表什么? -
@BalajiAmbresh 我已经用关于我的图表的更多细节更新了这个问题,希望它足够了。
-
一般来说,一个图是否有向是一个结构决定。也就是说,在你实现任何东西或用代码表示图形之前就已经确定了。如果您需要检查图表的数据以了解它是否是有向的,那么“无向”可能意味着与正常情况不同的东西。您的定义是对于每条边 A->B,还有一条边 B->A 吗?因为只是这些不同事物的想法暗示了有向图。
标签: python python-3.x dictionary graph