我正在尝试优化迷宫生成算法。目前,我有一个节点集列表和一个节点本身列表。节点存储为(x,y)元组。在开始时,每个集合仅包含一个节点。我在两个节点之间选择一个随机边界,并检查它们是否在同一集合中。这就是问题所在-我必须遍历集合列表并查看每个项目,直到找到包含给定节点的集合为止。我希望能够将集合作为Node类的属性来访问,但是我也希望集合包含“ Node”类的对象,并且我遇到了这个问题:
class Node:
def __init__(self, xy:tuple, group:set):
self.xy = xy
self.group = group
node = Node((10, 10),{Node(10, 10),{Node(10, 10),{... and so on }}})
如何创建这样的关系,以便我可以访问node.group的集合,同时group属性将指向其他Node对象所需的集合而无需递归?
这是您想要的吗?
class Node:
def __init__(self, xy:tuple):
self.xy = xy
self.group = None
def set_group(self, group:set):
if self.group is not None:
self.group.remove(self)
group.add(self)
self.group = group
node1 = Node((1,1))
node2 = Node((2,2))
group1 = set()
group2 = set()
node1.set_group(group1)
node2.set_group(group2)