class Node: def __init__(self, value): self.value = value def __str__(self): return self.value def __repr__(self): return self.__str__() class Graph: def __init__(self): self.nodes = [] self.connections = {} self.new_node("root") def new_node(self,value, connections= None): value = Node(value) self.connections[value] = connections self.nodes.append(value) def add_connection(self, node_name, connections): self.connections[node_name] = connections def create_graph(): g = Graph() g.new_node("1") g.add_connection("1", ["root","2","3"]) g.new_node("2") g.add_connection("2", ["root","3","4"]) g.new_node("3") g.new_node("4") g.add_connection("3", ["5"]) g.new_node("5") create_graph()