Implement a Graph
We will implement a graph using an .
We will assume the data
contained in vertexes (nodes) is unique, and this value will represent the key in the adjacency list as well.
When we initialize our graph, we will allow the user to pass a boolean value to indicate if it is undirected. This value will default to true.
We will implement methods to create vertexes, add edges to connect them, and remove a vertex. The implementation will take the following shape:
Note: Graph as Nodes
Another common way to work with graphs is directly through nodes. You'll gain a deep understanding of how to do this as you work through this module, so we are looking at another common implementation in this lesson.
Add a Vertex
This method will add a node to the adjacency matrix. Initially, this node is not connected to any other items.
Add an Edge
Adding an edge is how we indicate nodes are connected. If our graph is undirected, we also need to add a reciprocal edge pointing back.
Remove a Vertex
To delete a vertex, we remove it from the adjacency list. We also must delete all the edges that point to it.
Solution
With that, we have a complete graph implementation that is clean and simple. You can explore it further and run code in the REPL.