Subversion Repositories programming

Rev

Rev 100 | Blame | Compare with Previous | Last modification | View Log | RSS feed

// Written by Ira Snyder
// Project #2
// Due Date: 11-05-2004
// License: Public Domain (added 07-11-2005)

import java.io.*;
import java.util.*;

class Driver {

    public static void main( String[] args ) throws Exception {

        //create both example trees
        UnorderedTree tree1 = createTreeOne();
        UnorderedTree tree2 = createTreeTwo();
        
        //tree 1
        System.out.println("TreeOne's size is: " + tree1.size());
        System.out.println("Starting TreeOne's Traversals...");
        System.out.print("PreOrder: ");
        tree1.printPreOrder( System.out );
        System.out.print("PostOrder: ");
        tree1.printPostOrder( System.out );
        System.out.print("LevelOrder: ");
        tree1.printLevelOrder( System.out );
        System.out.println(); //blank line
        
        //tree 2
        System.out.println("TreeTwo's size is: " + tree2.size());
        System.out.println("Starting TreeTwo's Traversals...");
        System.out.print("PreOrder: ");
        tree2.printPreOrder( System.out );
        System.out.print("PostOrder: ");
        tree2.printPostOrder( System.out );
        System.out.print("LevelOrder: ");
        tree2.printLevelOrder( System.out );
    }

    //method to create and return tree 1
    public static UnorderedTree createTreeOne( ) {

        //create all leaf nodes
        UnorderedTree treeD = new UnorderedTree("D");
        UnorderedTree treeE = new UnorderedTree("E");
        UnorderedTree treeF = new UnorderedTree("F");
        UnorderedTree treeK = new UnorderedTree("K");
        UnorderedTree treeL = new UnorderedTree("L");
        UnorderedTree treeM = new UnorderedTree("M");
        UnorderedTree treeI = new UnorderedTree("I");

        //create Set of subtrees of treeC
        Set subtreesOfC = new HashSet();
        subtreesOfC.add(treeD);
        subtreesOfC.add(treeE);

        //create treeC
        UnorderedTree treeC = new UnorderedTree("C", subtreesOfC);

        //create Set of subtrees of treeG
        Set subtreesOfG = new HashSet();
        subtreesOfG.add(treeF);

        //create treeG
        UnorderedTree treeG = new UnorderedTree("G", subtreesOfG);
        
        //create Set of subtrees of treeB
        Set subtreesOfB = new HashSet();
        subtreesOfB.add(treeC);
        subtreesOfB.add(treeG);

        //create treeB
        UnorderedTree treeB = new UnorderedTree("B", subtreesOfB);

        //create Set of subtrees of treeJ
        Set subtreesOfJ = new HashSet();
        subtreesOfJ.add(treeK);
        subtreesOfJ.add(treeL);
        subtreesOfJ.add(treeM);

        //create treeJ
        UnorderedTree treeJ = new UnorderedTree("J", subtreesOfJ);

        //create Set of subtrees of treeH
        Set subtreesOfH = new HashSet();
        subtreesOfH.add(treeJ);
        subtreesOfH.add(treeI);

        //create treeH
        UnorderedTree treeH = new UnorderedTree("H", subtreesOfH);

        //create Set of subtrees of treeA
        Set subtreesOfA = new HashSet();
        subtreesOfA.add(treeB);
        subtreesOfA.add(treeH);

        //create treeA
        UnorderedTree treeA = new UnorderedTree("A", subtreesOfA);

        //return the completed tree
        return treeA;
    }

    //method to create and return tree 2
    public static UnorderedTree createTreeTwo( ) {

        //create all leaf nodes
        UnorderedTree treeO = new UnorderedTree("O");
        UnorderedTree treeP = new UnorderedTree("P");
        UnorderedTree treeQ = new UnorderedTree("Q");
        UnorderedTree treeS = new UnorderedTree("S");
        UnorderedTree treeT = new UnorderedTree("T");
        UnorderedTree treeX = new UnorderedTree("X");
        UnorderedTree treeU = new UnorderedTree("U");
        UnorderedTree treeV = new UnorderedTree("V");
        UnorderedTree treeW = new UnorderedTree("W");
        UnorderedTree treeZ = new UnorderedTree("Z");
        UnorderedTree tree1 = new UnorderedTree("1");
        UnorderedTree tree2 = new UnorderedTree("2");
        UnorderedTree tree3 = new UnorderedTree("3");
        UnorderedTree treeF = new UnorderedTree("F");
        UnorderedTree treeK = new UnorderedTree("K");
        UnorderedTree treeM = new UnorderedTree("M");
        UnorderedTree treeI = new UnorderedTree("I");

        //now create subtrees of R
        Set subtreesOfR = new HashSet();
        subtreesOfR.add(treeS);
        subtreesOfR.add(treeT);
        subtreesOfR.add(treeX);

        //create treeR
        UnorderedTree treeR = new UnorderedTree("R",subtreesOfR);

        //create subtrees of N
        Set subtreesOfN = new HashSet();
        subtreesOfN.add(treeO);
        subtreesOfN.add(treeP);
        subtreesOfN.add(treeQ);

        //create treeN
        UnorderedTree treeN = new UnorderedTree("N",subtreesOfN);

        //create subtrees of D
        Set subtreesofD = new HashSet();
        subtreesofD.add(treeR);
        subtreesofD.add(treeU);
        subtreesofD.add(treeV);
        subtreesofD.add(treeW);

        //create treeD
        UnorderedTree treeD = new UnorderedTree("D",subtreesofD);

        //create subtrees of Y
        Set subtreesOfY = new HashSet();
        subtreesOfY.add(treeZ);
        subtreesOfY.add(tree1);
        subtreesOfY.add(tree2);

        //create treeY
        UnorderedTree treeY = new UnorderedTree("Y",subtreesOfY);

        //create subtrees of 4
        Set subtreesOf4 = new HashSet();
        subtreesOf4.add(treeN);

        //create tree4
        UnorderedTree tree4 = new UnorderedTree("4",subtreesOf4);

        //create subtrees of E
        Set subtreesOfE = new HashSet();
        subtreesOfE.add(tree3);
        subtreesOfE.add(treeD);

        //create treeE
        UnorderedTree treeE = new UnorderedTree("E",subtreesOfE);

        //create subtrees of L
        Set subtreesOfL = new HashSet();
        subtreesOfL.add(treeY);

        //create treeL
        UnorderedTree treeL = new UnorderedTree("L",subtreesOfL);

        //create subtrees of C
        Set subtreesOfC = new HashSet();
        subtreesOfC.add(tree4);
        subtreesOfC.add(treeE);

        //create treeC
        UnorderedTree treeC = new UnorderedTree("C",subtreesOfC);

        //create subtrees of G
        Set subtreesOfG = new HashSet();
        subtreesOfG.add(treeF);

        //create treeG
        UnorderedTree treeG = new UnorderedTree("G",subtreesOfG);

        //create subtrees of J
        Set subtreesOfJ = new HashSet();
        subtreesOfJ.add(treeK);
        subtreesOfJ.add(treeL);
        subtreesOfJ.add(treeM);

        //create treeJ
        UnorderedTree treeJ = new UnorderedTree("J",subtreesOfJ);

        //create subtrees of B
        Set subtreesOfB = new HashSet();
        subtreesOfB.add(treeC);
        subtreesOfB.add(treeG);

        //create treeB
        UnorderedTree treeB = new UnorderedTree("B",subtreesOfB);

        //create subtrees of H
        Set subtreesOfH = new HashSet();
        subtreesOfH.add(treeI);
        subtreesOfH.add(treeJ);

        //create treeH
        UnorderedTree treeH = new UnorderedTree("H",subtreesOfH);

        //create subtrees of A
        Set subtreesOfA = new HashSet();
        subtreesOfA.add(treeB);
        subtreesOfA.add(treeH);

        //create treeA
        UnorderedTree treeA = new UnorderedTree("A",subtreesOfA);
        
        //return the completed tree
        return treeA;
    }
    
} //end of class Driver