Revised version of CS220 graph library by Sonny Datt <ndat001@ec.auckland.ac.nz>

The classes all have some comment on the top of the files [Interfaces have more notes than their implementations].
-the current test class is quite big, but any file in *this* directory will be able to access the folders imported from the graphs package.


CLASS LAYOUTS:

GraphADT
	Graph Interface:
	-GraphAdjLists
	-GraphAdjMatrix

		uGraph Interface extends Graph:
		-uGraphLists extends GraphAdjLists
		-uGraphMatrix extends GraphAdjMatrix

		wGraph Interface extends Graph:
		-wGraphLists extends GraphAdjLists
		-wGraphMatrix extends GraphAdjMatrix

			wUGraph Interface extends uGraph, wGraph:
			-wUGraphLists extends wGraphLists
			-wUGraphMatrix extends wGraphMatrix
			
Notes:			
-Everything is of type Graph;
-wUGraph is also a type of uGraph and wGraph which allows for code like wGraph = new wUGraph[Implementation](Buffer);
-uGraphs and wGraphs are not related, which stops the use of code such as uGraph = new wGraphMatrix();
-Algorithms that take in an undirected graph can take either uGraph or wUGraph, similarly with weighted algorithms (wGraph or wUGraph);

TreeADT
	UnrootedTree Interface:
	-uTree

		RootedTree Interface extends UnrootedTree:
		-rTree

			OrderedTree Interface extends RootedTree:
			-oTree
			
Notes:			
the tree can take multiple forms, I am considering having a Tree interface 
similar to the graph class layout; but I don't see how that will aid
in its use.
