-
Graph:
class Graph(dict): def __init__(self, vs=[], es=[]): for v in vs: self.add_vertex(v) for e in es: self.add_edge(e) # 必须全部的顶点添加完毕之后,才可以添加新的边进去 def add_vertex(self, v): self[v] = {} def add_edge(self, e): v, w = e self[v][w] = e self[w][v] = e # 无向边以双向连接的方式实现;
-
vertex:
class Vertex(object): def __init__(self, label=''): self.label = label der __repr__(self): return 'Vertex(%s)' % self.label __str__ = __repr__
-
edge:
class Edge(tuple): def __new__(cls, e1, e2): return tuple.__new__(cls, (e1, e2)) def __repr(self): return 'Edge(%s, %s)' % (repr(self[0]), repr(self[1])) __str__ = __repr__
面向对象举例(一) —— 顶点(vertex)、边(edge)与图(graph)
转载本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章