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.