Question: A graph is a data structure that consists of vertices (nodes) and edges connecting the nodes. Graphs are great for representing relationships between two nodes, those of which are either directly or indirectly related. Graphs can be represented as either adjacency matrices or adjacency lists. For our implementations, we will use adjacency lists because we can then refer to the node values directly. We can represent adjacency lists in q using dictionaries, with the keys being the distinct nodes and the values being the adjacent nodes for each key. If there are no adjacent nodes, then the value should be an empty list. Given the below graph, represent it in q as an adjacency list.
// represent this graph in q as a dictionary
a -> b
a -> c
b -> d