图G(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()))
Run Code Online (Sandbox Code Playgroud)
有内置函数networkx可以检查给定图形的类型。
要检查它是否是一棵树,请运行networkx.is_tree(g)。请参阅文档中的树算法networkx。