递归函数返回所有连接节点的列表,使用python从网络图中获得某个节点

我正在尝试编写一个函数,该函数将返回子网中所有连接节点的列表,给定子图的起始节点:

例如,下图具有两个子网,一个红色和一个绿色,如下图所示:

在此处输入图片说明

使用名为networkx的python程序包,我运行了以下代码:

import networkx as nx
import pandas as pd
import numpy as np

G=nx.Graph()

G.add_node(1)
G.add_node(2)
G.add_node(3)
G.add_node(4)
G.add_node(5)
G.add_node(6)

G.add_edge(1,2)
G.add_edge(2,3)
G.add_edge(1,5)
G.add_edge(4,6)

def recurse(G, z , node):
    z.append(node)
    n = list(set(G.neighbors(node)) - set(z)) 
    if len(n) == 0:
        return []
    else:
        for i in n:
            if i not in z:
                z.extend(recurse(G, z, i))
                return z

z = []
f = recurse(G,z,1)
print(f)

当给定(1)作为起始节点时,该函数应该返回子组-> [1,2,3,5],但它返回[1,2,3,1,2,3]

有什么想法可以通过调整代码或使用其他方法来执行此任务吗?

谢谢!

沉默的

如果您对节点的访问顺序不感兴趣,则可以执行DFS并将访问的节点收集到set

def recurse(G, z, node):
    z.add(node)
    for i in G.neighbors(node):
        if i not in z:
            recurse(G, z, i)

z = set()
recurse(G,z,1)
print(z) # {1, 2, 3, 5}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在网络图中获取断开连接的节点对?

来自分类Dev

网络图中节点的2种着色

来自分类Dev

有没有办法改变我的网络图中节点的形状?

来自分类Dev

Quanteda:计算网络图中每个节点的边数

来自分类Dev

在d3强制定向网络图中更新带有标签的节点和链接未正确删除节点

来自分类Dev

使用R的网络图:基于连接边数的节点大小

来自分类Dev

返回列表中某个元素的所有位置,而无需递归,但使用列表生成器

来自分类Dev

在有向图中查找所有节点的列表

来自分类Dev

在节点中,我如何要求函数仅在获得所需的所有数据后才返回?

来自分类Dev

使用python获取所有pytest节点ID的列表

来自分类Dev

单击Bokeh中的彩色网络图节点线,Python

来自分类Dev

获取网络中所有断开连接的节点对

来自分类Dev

更新图中的所有节点

来自分类Dev

如何使用节点列表作为输入在有向图中找到连接的组件?

来自分类Dev

JavaScript:用于查找“链接列表”节点的递归函数返回错误的节点

来自分类Dev

Neo4j:在树状图中显示所有连接的节点及其父节点

来自分类Dev

匹配所有节点并返回节点+关系

来自分类Dev

在直接加权图中找到从节点A到节点B的所有简单路径,权重之和小于某个值?

来自分类Dev

在直接加权图中找到从节点A到节点B的所有简单路径,权重之和小于某个值?

来自分类Dev

鼠标悬停在闪亮的网络图中时如何捕获节点名称?

来自分类Dev

递归读取所有节点和子节点

来自分类Dev

D3-从2列节点列表创建网络图

来自分类Dev

在树形视图中查找父节点的所有选中节点

来自分类Dev

返回语句列表中内置的所有函数的Python使用

来自分类Dev

具有与重量和类型有关的节点和边缘的网络图

来自分类Dev

如何使用Cypher返回节点的所有属性?

来自分类Dev

链接列表:使用递归插入节点

来自分类Dev

如何递归地在JSON文件中搜索与给定模式匹配的所有节点,并返回该节点的JSON“路径”及其值?

来自分类Dev

如何递归地在JSON文件中搜索与给定模式匹配的所有节点,并返回该节点的JSON“路径”及其值?

Related 相关文章

  1. 1

    在网络图中获取断开连接的节点对?

  2. 2

    网络图中节点的2种着色

  3. 3

    有没有办法改变我的网络图中节点的形状?

  4. 4

    Quanteda:计算网络图中每个节点的边数

  5. 5

    在d3强制定向网络图中更新带有标签的节点和链接未正确删除节点

  6. 6

    使用R的网络图:基于连接边数的节点大小

  7. 7

    返回列表中某个元素的所有位置,而无需递归,但使用列表生成器

  8. 8

    在有向图中查找所有节点的列表

  9. 9

    在节点中,我如何要求函数仅在获得所需的所有数据后才返回?

  10. 10

    使用python获取所有pytest节点ID的列表

  11. 11

    单击Bokeh中的彩色网络图节点线,Python

  12. 12

    获取网络中所有断开连接的节点对

  13. 13

    更新图中的所有节点

  14. 14

    如何使用节点列表作为输入在有向图中找到连接的组件?

  15. 15

    JavaScript:用于查找“链接列表”节点的递归函数返回错误的节点

  16. 16

    Neo4j:在树状图中显示所有连接的节点及其父节点

  17. 17

    匹配所有节点并返回节点+关系

  18. 18

    在直接加权图中找到从节点A到节点B的所有简单路径,权重之和小于某个值?

  19. 19

    在直接加权图中找到从节点A到节点B的所有简单路径,权重之和小于某个值?

  20. 20

    鼠标悬停在闪亮的网络图中时如何捕获节点名称?

  21. 21

    递归读取所有节点和子节点

  22. 22

    D3-从2列节点列表创建网络图

  23. 23

    在树形视图中查找父节点的所有选中节点

  24. 24

    返回语句列表中内置的所有函数的Python使用

  25. 25

    具有与重量和类型有关的节点和边缘的网络图

  26. 26

    如何使用Cypher返回节点的所有属性?

  27. 27

    链接列表:使用递归插入节点

  28. 28

    如何递归地在JSON文件中搜索与给定模式匹配的所有节点,并返回该节点的JSON“路径”及其值?

  29. 29

    如何递归地在JSON文件中搜索与给定模式匹配的所有节点,并返回该节点的JSON“路径”及其值?

热门标签

归档