2013-05-18 28 views
2

一棵樹,我想知道是否有一個簡單的方法來檢查networkx一定的無向圖是否是圖G樹或不檢查無向圖是networkx

+1

我不知道是否有一種使用'如果它發現一個已經訪問過的節點,就有一個循環,所以它不是一棵樹)。 – Blckknght

回答

8

最快的方式( V,E)可能會檢查是否| V | = | E | + 1,並且連接了G:

import networkx as nx 
def is_tree(G): 
    if nx.number_of_nodes(G) != nx.number_of_edges(G) + 1: 
     return False 
    return nx.is_connected(G) 

if __name__ == '__main__': 

    print(is_tree(nx.path_graph(5))) 
    print(is_tree(nx.star_graph(5))) 
    print(is_tree(nx.house_graph()))