我正在尝试开发一个python程序,以便在添加新行时检查图表中是否存在循环。
我将不同的行存储在按最短长度排序的列表中,并且这些行是一个类:
class Line():
def __init__(self,node1,node2,length):
self.node1 = node1
self.node2 = node2
self.length = int(length)
self.drawn = False
节点存储在列表中:
nodes = ["A","B","C","D","E","F"]
当我的程序运行时,它将路由存储为列表:
route = [class(Line),class(Line)...]
我想要它做的是检查添加新行时它是否形成循环。我打算在更大的类中使用一个方法:
类似的东西:
def check_loop(new_line,graphs):
add new line to graph
if there is a loop in graphs:
return False
else:
return True
(抱歉这是我的第一篇帖子,所以格式是垃圾)
答案 0 :(得分:0)
要确定是否在树中创建循环非常简单,您只需选择一个节点,然后广度首先从该节点搜索整个树。如果在您到达之前已经访问过任何节点,那么您就知道存在一个循环,因为有一个替代路径到达您所采用的节点旁边的那个节点。