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. Projects posted are only 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 fill out the form. Please provide a valid email address and we'll get back to you in less than 24 hours. We will be sending an invoice through PayPal upon confirmation. We are a non profit organization however we need an amount to keep this organization running, and to be able to complete our research and development.