Project 4 Grading Guideline =========================== If no makefile is submitted, award 0 points. If the project does not compile or does not run, award 0 points. You MUST included a file named README that gives basic instructions for how to run the testing program once your program has been compiled. If README is not included, award 0 points. (1) Testing (44 points) User Interface and Output - [9 points] * User interface is clear - especially if expecting user input (3) * Output from testing clealy states which structure is being tested, the type of data being stored in the structure for the tests, the functions being tested, the expected results and the returned results (3) * The testing should be explained as it goes in a manner that is easy to follow - it should almost read like the story of the data structure (3) Testing of Tree - [8 points] Each one of the 8 functions listed on description is tested at least once. Testing of Graph - [7 points] Each one of the 7 functions listed on description is tested at least once. Quality of Testing - [20 points] Testing should be thorough an meticulous. Testing should be done on data that will work and data that will not (for example, deleting an element that was not there to begin with). Grading for this part will be either 0 points for totally inadequate tests, 10 points if there are a few key tests missing, or 20 points if testing appears to be done reasonably well. (2) Implementation Details (20 points) NOTE: If there is no implementation and the tests were just a script that runs, award 0 points total for the project. The implementation of both structures should be considered for their appropriateness in design. AVL/Splay Tree (10 points * Tree should employ a structured approach to the balancing of the tree - it should not be random * Tree should use to its recursive structure to its advantage as much as possible - no functions should be implemented iteratively Graph (10 points) * Graph should not be implemented using a "cheat" - for example, converting to another representation (adjacency list or matrix) to compute the results of a function * Graph should have a reasonable solution for implementing multiple arcs, isolated nodes, weights on edges (3) Paper (36 points) Section 1 - AVL/Splay Implementation * Describe your approach to the balancing of this structure * How did the need for balance impact insert - what was the algorithm followed for insert * How did the need for balance impact search - what was the algorithm followed for insert * Describe your implementation of the print to show structure function and how the print out should be interpreted Section 2 - Graph Implementation * How does your graph store loops? * How does your graph store directed edges? * How does your graph store undirected edges? * How does your graph store weighted edges? * How does your graph store unweighted edges? * How does your graph handle multiple parallel edges? * How does your graph handle isolated nodes? * Describe your algorithm for insertion * Describe your algorithm for deletion of an edge * Describe your algorithm for deletion of a node * Describe your algorithm for determining if two nodes are adjacent * Describe your algorithm for finding a path between two nodes * Describe your algorithm for printing out all the nodes in the graph Section 3 - Approach to Testing * Describe your approach to testing your structures. (4) Bonus - Implementation of delete on tree [8 points] ---------------------------------------------------------------------------- Grading Breakdown - Project 4 Testing (44 possible points) You earned => Explanation (required if earned less than 44 points) Implementation (20 possible points) You earned => Explanation (required if earned less than 20 points) Paper (36 possible points) You earned => Explanation (required if earned less than 36 points) Bonus (8 possible points) You earned => Total on Project: