In the winter, municipal snowplows must plow both sides of city streets that are bidirectional (two-way traffic) but they only make a single pass over unidirectional (one-way) streets.

We can represent city streets as the edges in a graph using nodes for intersections. Of course, it is a requirement that every street be plowed appropriately (once in each direction for bidirectional streets and only once in the proper direction for unidirectional streets).

Write a program that uses integers to represent nodes, and tuples (pairs of integers enclosed in parentheses, e.g., (4 7), to represent a street from node 4 to node 7, and a second tuple, (7 4)

to represent the fact that this is a bidirectional street). Assume that there is but a single snowplow and it must start and return to node 1. Your program must read a collection of tuples from a file and then produce driving instructions for the snowplow operator telling the sequence of intersections (nodes) to visit so that all the streets are appropriately plowed. If it is impossible to perform a correct plowing (some street would be left unplowed or some street would be plowed twice) your program must report this fact. Your program should repeatedly read collections of tuples and processes the information until an end-of-file is encountered. Your program will lose a significant number of points if your algorithm fails to work properly for cities (graphs) containing both bidirectional and unidirectional streets.

Your solution must include the data file that it uses for input. Remember NOT to use an absolute path to access the data file use a relative path. Be certain your data describes several different city street situations so that your program can demonstrate that it meets all the requirements.

Academic Honesty!
It is not our intention to break the school's academic policy. Posted solutions are meant to be used as a reference and should not be submitted as is. We are not held liable for any misuse of the solutions. Please see the frequently asked questions page for further questions and inquiries.
Kindly complete the form. Please provide a valid email address and we will get back to you within 24 hours. Payment is through PayPal, Buy me a Coffee or Cryptocurrency. We are a nonprofit organization however we need funds to keep this organization operating and to be able to complete our research and development projects.