/****
 *
 * Class GraphMethods contains two graph methods for generating a dependency
 * list and minimum spanning tree.
 *
 * @author
 * @version
 */

public class GraphMethods {

    /**
     * Generate a list of dependency lists for each node in the given directed
     * graph g.  For a given node n, a dependency list for n is defined as the
     * list of nodes which appear before n in the directed graph, in reverse
     * graph order.  For nodes that have no dependencies, the dependency list
     * is null.  If a node has more than one dependency list, each list is
     * entered separately in the outer list, per the ordering described in the
     * next paragraph.
     *									    <p>
     * The output list is sorted by dependency list length, from shortest to
     * longest.  For nodes with the same length dependency list, the secondary
     * sorting order is by ascending node value, using compareTo on values.
     *									    <p>
     * Valid output is only produced for acyclic graphs.  If the input graph
     * has one or more cycles, the CycleFound exception is thrown.
     */
    public GeneralList dependencyLists(Graph g) throws CycleFound {}


    /**
     * Generate a minimum spanning tree for the given undirected, weighted
     * graph g using Kruskal's algorithm.  The output is the GeneralTree
     * representation of the minimum spanning tree.
     */
    public GeneralTree spanningTree(Graph g) {}

}