CIS 350 Machine Problem 4 Winter ‘97 In this assignment, you will have the opportunity to build an interactive tool which will allow managers edit a digraph representing subtask dependencies in a multi-task project. The manager may then request a topological ordering of the graph or determination of the critical path through the network (if task durations are recorded as part of the nodes). You will need to devise a complete set of abstract operations for your digraph ADT. You will need to do some kind of testing for cycles (depth-first search can be useful). You will need to implement your digraph using some type of linked organization (since there are no bounds on the number of nodes or arcs). You will need to devise a set of test data for your tool. The nodes in your digraph should allow for storage of the task name, cost, and duration (which is optional). Any additional fields needed to implement your ADT operators are also allowed. You may work on this exercise with a lab partner if you wish. If you choose to do so, you must tell me who you worked with and what portion of the programming work was done by each of you. You also must each turn in separate (and original) 3 to 5 page memos discussing your own interpretations of your test results. The output from your program must include enough detail so that it is informative to the user (or the instructor). Screen dumps are fine to show user interface characteristics. As always some intermediate output should be included to make grading and testing easier. You will each need to turn in a 3 to 5 page memo discussing your program. The memo should contain a discussion your data structure implementation decisions (in light of their theoretical complexities) and program limitations. You must turn in a program listing, compiler diagnostics, and program output as usual. No programs will be accepted after the final exam date, Wednesday, April 30th.