顶点类
class Vertex(object):
"""顶点类"""
def __init__(self, key, distance=0, predecessor=0, color=None):
"""
:param key: 顶点的 key
:param distance: 从起始顶点到此顶点路径长度
:param predecessor: 可反向追溯到起点
:param color: 标识此顶点的颜色 (white:未发现, gray:已发现, black:已完成搜索)
"""
self.id = key
self.connected_to = {}
self.distance = distance
self.predecessor = predecessor
self.color = color
def add_neighbor(self, nbr, weight=0):
"""
:param nbr: 目标顶点对象的 key
:param weight: 边的权重
:return:
"""
self.connected_to[nbr] = weight
def __str__(self):
return str(self.id) + ' connected to: ' + str([x.id for x in self.connected_to])
def get_connections(self):