Write a program that can accomplish the following:
1. Read in a graph from [url removed, login to view] in the following format:
node# 1st-arc-to-node# weight-for-previous-arc 2nd-arc-to-node# weight-for-previous-arc 3rd-arc-to-node# weight-for-previous-arc ...
As an example:
1 2 10 3 5 4 100
2 1 5
4 3 50 2 10
In the above example, node 1 has an arc with weight 10 to node 2, weight 5 to node 3, and weight 100 to node 4. Node 2 has an arc with weight 5 to node 1. Node 4 has an arc to node 3 with weight 50 and to node 2 with weight 10.
Note that in the above example, there IS a node 3 despite not being specifically declared on a line. Any node that is either explicitly defined on its own line, or into which an arc goes, must be considered to exist.
2. Display an ascii art image of the graph on the screen. An sample for the above example is shown below. It is not the only possible example:
| | | |
As can be seen in the above example, use the following format:
nodes are written inside brackets
vertical lines are drawn with |
horizontal lines are drawn with -
90 degree bends, and intersections between lines (in order to share one line between two arcs) are drawn with +
a horizontal line crossing but not intersecting with a vertical line is drawn with an =
arc weights are written somewhere on the arc's line; if a line is shared between two arcs, only the part of the line used by only ONE arc may show the arc weight
to draw arrows, use <, >, V, and ^.
You do NOT need to optimize for the least number of crosses, turns, or intersections. You DO need to account for every possible graph where id(v) + od(v) <= 4 for all nodes v.
3. Display a chart, in an easily readable format, of the shortest path between each node s and every node t reachable from node s.
8 freelancers are bidding on average $30 for this job
Hi, I've worked on some similar algorithm before so this is not difficult to do. I would be interested to work with you on this project. Please let me know if you are interested in my proposal. Happy holidays!