9.3. The Graph Abstract Data Type¶
The graph abstract data type (ADT) is defined as follows:
Graph()
creates a new, empty graph.addVertex(vert)
adds an instance ofVertex
to the graph.addEdge(fromVert, toVert)
Adds a new, directed edge to the graph that connects two vertices.addEdge(fromVert, toVert, weight)
Adds a new, weighted, directed edge to the graph that connects two vertices.getVertex(vertKey)
finds the vertex in the graph namedvertKey
.getVertices()
returns the list of all vertices in the graph.in
returnsTrue
for a statement of the formvertex in graph
, if the given vertex is in the graph,False
otherwise.
Beginning with the formal definition for a graph there are several ways we can implement the graph ADT 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.
-
Q-1: Drag and drop each graph abstract data type to its corresponding definition.
This is feedback.
- Graph()
- creates a new, empty graph.
- addVertex(vert)
- adds an instance of Vertex to the graph.
- addEdge(fromVert, toVert)
- Adds a new, directed edge to the graph that connects two vertices.
- addEdge(fromVert, toVert, weight)
- Adds a new, weighted, directed edge to the graph that connects two vertices.
- getVertex(vertKey)
- finds the vertex in the graph named vertKey.
- getVertices()
- returns the list of all vertices in the graph.
- in
- returns True for a statement of the form vertex in graph, if the given vertex is in the graph, False otherwise.