7.3. The Graph Abstract Data Type¶
The graph abstract data type is defined as a collection of vertices and edges. Vertices may be either connected to each other or isolated. Edges join two vertices and may be weighted.
Graph()creates a new empty graph.
add_vertex(vert)adds an instance of
Vertexto the graph.
add_edge(from_vert, to_vert)adds a new directed edge to the graph that connects two vertices.
add_edge(from_vert, to_vert, weight)adds a new weighted directed edge to the graph that connects two vertices.
get_vertex(vert_key)finds the vertex in the graph named
get_vertices()returns the list of all vertices in the graph.
Truefor a statement of the form
vertex in graphif the given vertex is in the graph,
Now that we have looked at the definition for the graph ADT, there are several ways we can implement it in Python. We will see that there are trade-offs in using different representations to implement the ADT described above. There are two well-known implementations of a graph, the adjacency matrix and the adjacency list. We will explain both of these options, and then implement one as a Python class.