python来进行图的深度遍历和广度遍历
# -*- coding: utf-8 -*-
"""
Created on Sat Sep 14 18:01:27 2019
@author: Administrator
"""
import matplotlib.pyplot as plt
import networkx as nx
def get_traversal():
G = nx.Graph()
filestr = ""
#需要读入的邻接矩阵
with open("graph.txt") as files:
for line in files:
filestr += line.strip()
#将字符串转换成列表
matrix = eval(filestr)
nodes = range(len(matrix))
G.add_nodes_from(nodes)
for i in range(len(matrix)):
for j in range(len(matrix)):
if(matrix[i][j] == 1):
G.add_edge(i, j)
print("--------------------深度遍历----------------------")
print(list(nx.dfs_edges(G,source=0)))
print("---------------------------------")
print(list(nx.dfs_preorder_nodes(G,source=0)))
print("--------------------广度遍历-----------------------")
print(list(nx.bfs_edges(G,source=0)))
get_traversal()