Graph Traversals
For this homework set, you will design a graph traversal algorithm in Rust.
The objective of this homework is to deepen your knowledge of Rust, its standard library, and the trait system. It is also warm-up for Reflective Essay so that you can then focus on concurrency and communication.
Deadline Friday 27 February NOON.
graph_traversal
The purpose of graph_traversal is to find a path through a graph. The program reads the graph from a file named on the command line and reads graph queries from standard input.
A graph specification is a file where each line consists of a list of word. The first word specifies a node in the graph and the remaining words enumerate the node’s reachable neighbors. The graph is assumed to be unorderedundirected. Each node mentioned as a neighbor must come with a line in the specification.
Consumers enter path queries one line at a time. A line consists of exactly two node names: the desired start and end node of the path.
| $ cat ../graph/graph.dat | 
| a b d | 
| b a d | 
| c | 
| d c | 
| 
 | 
| $ ./graph_traversal graph.dat | 
| -> a d | 
| a b d | 
| -> a b | 
| a b | 
| -> a c | 
| a b d c |