def earliest_ancestor(relation, starting_child): graph = Graph() for parent, child in relation: graph.add_vertex(parent) graph.add_vertex(child) for parent, child in relation: graph.add_edge(child, parent) #print(list(graph.vertices[3])) return (graph.dft(starting_child))