'''这两天看了不少讲Floyd算法的文章,大概理解了其中的思想
然后自己动手,从图和节点类的定义开始,整个自己写了一下
和其他博主的实现方式上会有一些差别,注释我都写上了,有问题期待交流'''
class Vertex():
def __init__(self,key):
self.id = key #存储节点名称
self.connectedTo = {} #存储相邻节点信息
def addNeighbor(self,nbr,weight = 0):
self.connectedTo[nbr] = weight #添加相邻节点
#nbr.connectedTo[self] = weight #实现双向互通
def getConnections(self):
return self.connectedTo.keys() #返回所有相邻节点的信息
def getId(self):
return self.id #返回当前节点的名称
def getWeight(self,nbr):
if nbr not in self.connectedTo.keys() and nbr!=self:
return 99999
elif nbr == self:
return 0
else:
return self.connectedTo[nbr] #返回指定相邻节点的权重
def __str__(self):
return str(self.getId()) + 'connected to' +str([x.getId() for x in self.connectedTo.keys()]
python实现Floyd算法
最新推荐文章于 2024-07-12 22:32:46 发布
本文介绍了使用Python语言实现Floyd算法的过程,通过一个具体的图示例进行详细讲解,帮助读者理解该算法如何找到图中两点间的最短路径。参考了博主@Angel_Kitty的图文详解。
摘要由CSDN通过智能技术生成