class Graph: def __init__(self): self.graph = {} def add_vertex(self, vertex): if vertex not in self.graph: self.graph[vertex] = [] else: print(f"Vertex {vertex} already exists.") def add_edge(self, vertex1, vertex2, length:int): if vertex1 in self.graph and vertex2 in self.graph: self.graph[vertex1].append(vertex2) self.graph[vertex2].append(vertex1) self.length = length else: print("One or both vertices not found.") def display(self): for vertex in self.graph: print(f'{vertex}: {self.graph[vertex]} : {self.length}' ) # Example usage if __name__ == "__main__": g = Graph() # Adding vertices g.add_vertex("A") g.add_vertex("B") g.add_vertex("C") g.add_vertex("D") # Adding edges g.add_edge("A", "B", 10) g.add_edge("A", "C", 5) g.add_edge("B", "D", 30) g.add_edge("C", "D", 11) # Display the graph g.display()