Я пытаюсь создать некоторый тип класса, который будет достаточно универсальным, чтобы использоваться как для деревьев, так и для графиков.
class Node:
def __init__(self, value, children=[]):
self.value = value
self.children = children
def add_child(self, child):
self.children.append(child)
def add_children(self, list_of_children):
for child in list_of_children:
self.add_child(child)
def letterGraph():
a = Node('A')
b = Node('B')
c = Node('C')
d = Node('D')
c = Node('C')
e = Node('E')
f = Node('F')
g = Node('G')
a.add_children([b, c])
b.add_children([a, d, e])
c.add_children([a, d])
d.add_children([b, c, e, g, f])
e.add_children([b, d, g])
f.add_children([d, g])
g.add_children([e, d, f])
return a
Кажется, что он отлично работает с деревьями, но в отношении графиков, когдаон добавляет дочерний элемент к текущему узлу, а также добавляет тот же дочерний элемент к дочерним узлам текущего узла.
пример:
current_node: a
a.add_children ([b, c])
current_node.children: [b, c]
b.children: [b, c] `