图的遍历
图的遍历 ( T r a v e r s i n g G r a p b ) (Traversing\ Grapb ) (Traversing Grapb):从图中某一顶点出发访遍图中其余顶点,且使每一个顶点仅被访问一次,这一过程就叫做图的遍历 。
无向图的邻接矩阵储存结构代码
class Undirected_Graph_Matrix(object):
#Adjacency Matrix
def __init__(self, vertices=[], edges_list=[]):
self.edges_dict = {} #{(tail, head):weight}
self.edges_list=edges_list #(tail, head, weight)
self.vertices = vertices #顶点
self.num_edges = len(self.edges_list) #边的数目
self.num_vertices = len(self.vertices) #顶点数目
self.Mat = zeros((self.num_vertices,self.num_vertices)) #邻接矩阵
if len(self.vertices) == 0:
#图不能为空
print('图不能为空')
raise IndexError
for Edge in edges_list:
#根据edges_list生成self.edges_dict
self.edges_dict[(Edge[0],Edge[1])]=Edge[2]
for i in range(self.num_vertices):
for j in range(self.num_vertices):
if i==j:
self.Mat[i][j]=0
elif (vertices[i],vertices[j]) in self.edges_dict:
self.Mat[i][j]=self.edges_dict[(vertices[i],vertices[j])]
self.Mat[j][i]=self.edges_dict[(vertices[i],vertice