Subversion Repositories programming

Rev

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

Rev Author Line No. Line
23 irasnyd 1
// Written by Ira Snyder
26 irasnyd 2
// Project #2
3
// Due Date: 11-05-2004
108 ira 4
// License: Public Domain (added 07-11-2005)
26 irasnyd 5
 
23 irasnyd 6
import java.io.*;
7
import java.util.*;
8
 
9
class Driver {
10
 
27 irasnyd 11
    public static void main( String[] args ) throws Exception {
12
 
13
        //create both example trees
14
        UnorderedTree tree1 = createTreeOne();
15
        UnorderedTree tree2 = createTreeTwo();
26 irasnyd 16
 
17
        //tree 1
18
        System.out.println("TreeOne's size is: " + tree1.size());
19
        System.out.println("Starting TreeOne's Traversals...");
20
        System.out.print("PreOrder: ");
21
        tree1.printPreOrder( System.out );
22
        System.out.print("PostOrder: ");
23
        tree1.printPostOrder( System.out );
24
        System.out.print("LevelOrder: ");
25
        tree1.printLevelOrder( System.out );
26
        System.out.println(); //blank line
27
 
28
        //tree 2
29
        System.out.println("TreeTwo's size is: " + tree2.size());
30
        System.out.println("Starting TreeTwo's Traversals...");
31
        System.out.print("PreOrder: ");
32
        tree2.printPreOrder( System.out );
33
        System.out.print("PostOrder: ");
34
        tree2.printPostOrder( System.out );
35
        System.out.print("LevelOrder: ");
36
        tree2.printLevelOrder( System.out );
37
    }
23 irasnyd 38
 
27 irasnyd 39
    //method to create and return tree 1
40
    public static UnorderedTree createTreeOne( ) {
23 irasnyd 41
 
27 irasnyd 42
        //create all leaf nodes
43
        UnorderedTree treeD = new UnorderedTree("D");
44
        UnorderedTree treeE = new UnorderedTree("E");
45
        UnorderedTree treeF = new UnorderedTree("F");
46
        UnorderedTree treeK = new UnorderedTree("K");
47
        UnorderedTree treeL = new UnorderedTree("L");
48
        UnorderedTree treeM = new UnorderedTree("M");
49
        UnorderedTree treeI = new UnorderedTree("I");
23 irasnyd 50
 
27 irasnyd 51
        //create Set of subtrees of treeC
52
        Set subtreesOfC = new HashSet();
53
        subtreesOfC.add(treeD);
54
        subtreesOfC.add(treeE);
23 irasnyd 55
 
27 irasnyd 56
        //create treeC
57
        UnorderedTree treeC = new UnorderedTree("C", subtreesOfC);
23 irasnyd 58
 
27 irasnyd 59
        //create Set of subtrees of treeG
60
        Set subtreesOfG = new HashSet();
61
        subtreesOfG.add(treeF);
23 irasnyd 62
 
27 irasnyd 63
        //create treeG
64
        UnorderedTree treeG = new UnorderedTree("G", subtreesOfG);
65
 
66
        //create Set of subtrees of treeB
67
        Set subtreesOfB = new HashSet();
68
        subtreesOfB.add(treeC);
69
        subtreesOfB.add(treeG);
23 irasnyd 70
 
27 irasnyd 71
        //create treeB
72
        UnorderedTree treeB = new UnorderedTree("B", subtreesOfB);
23 irasnyd 73
 
27 irasnyd 74
        //create Set of subtrees of treeJ
75
        Set subtreesOfJ = new HashSet();
76
        subtreesOfJ.add(treeK);
77
        subtreesOfJ.add(treeL);
78
        subtreesOfJ.add(treeM);
23 irasnyd 79
 
27 irasnyd 80
        //create treeJ
81
        UnorderedTree treeJ = new UnorderedTree("J", subtreesOfJ);
23 irasnyd 82
 
27 irasnyd 83
        //create Set of subtrees of treeH
84
        Set subtreesOfH = new HashSet();
85
        subtreesOfH.add(treeJ);
86
        subtreesOfH.add(treeI);
23 irasnyd 87
 
27 irasnyd 88
        //create treeH
89
        UnorderedTree treeH = new UnorderedTree("H", subtreesOfH);
23 irasnyd 90
 
27 irasnyd 91
        //create Set of subtrees of treeA
92
        Set subtreesOfA = new HashSet();
93
        subtreesOfA.add(treeB);
94
        subtreesOfA.add(treeH);
23 irasnyd 95
 
27 irasnyd 96
        //create treeA
97
        UnorderedTree treeA = new UnorderedTree("A", subtreesOfA);
23 irasnyd 98
 
27 irasnyd 99
        //return the completed tree
100
        return treeA;
101
    }
23 irasnyd 102
 
27 irasnyd 103
    //method to create and return tree 2
104
    public static UnorderedTree createTreeTwo( ) {
23 irasnyd 105
 
27 irasnyd 106
        //create all leaf nodes
107
        UnorderedTree treeO = new UnorderedTree("O");
108
        UnorderedTree treeP = new UnorderedTree("P");
109
        UnorderedTree treeQ = new UnorderedTree("Q");
110
        UnorderedTree treeS = new UnorderedTree("S");
111
        UnorderedTree treeT = new UnorderedTree("T");
112
        UnorderedTree treeX = new UnorderedTree("X");
113
        UnorderedTree treeU = new UnorderedTree("U");
114
        UnorderedTree treeV = new UnorderedTree("V");
115
        UnorderedTree treeW = new UnorderedTree("W");
116
        UnorderedTree treeZ = new UnorderedTree("Z");
117
        UnorderedTree tree1 = new UnorderedTree("1");
118
        UnorderedTree tree2 = new UnorderedTree("2");
119
        UnorderedTree tree3 = new UnorderedTree("3");
120
        UnorderedTree treeF = new UnorderedTree("F");
121
        UnorderedTree treeK = new UnorderedTree("K");
122
        UnorderedTree treeM = new UnorderedTree("M");
123
        UnorderedTree treeI = new UnorderedTree("I");
23 irasnyd 124
 
27 irasnyd 125
        //now create subtrees of R
126
        Set subtreesOfR = new HashSet();
127
        subtreesOfR.add(treeS);
128
        subtreesOfR.add(treeT);
129
        subtreesOfR.add(treeX);
23 irasnyd 130
 
27 irasnyd 131
        //create treeR
132
        UnorderedTree treeR = new UnorderedTree("R",subtreesOfR);
23 irasnyd 133
 
27 irasnyd 134
        //create subtrees of N
135
        Set subtreesOfN = new HashSet();
136
        subtreesOfN.add(treeO);
137
        subtreesOfN.add(treeP);
138
        subtreesOfN.add(treeQ);
23 irasnyd 139
 
27 irasnyd 140
        //create treeN
141
        UnorderedTree treeN = new UnorderedTree("N",subtreesOfN);
23 irasnyd 142
 
27 irasnyd 143
        //create subtrees of D
144
        Set subtreesofD = new HashSet();
145
        subtreesofD.add(treeR);
146
        subtreesofD.add(treeU);
147
        subtreesofD.add(treeV);
148
        subtreesofD.add(treeW);
23 irasnyd 149
 
27 irasnyd 150
        //create treeD
151
        UnorderedTree treeD = new UnorderedTree("D",subtreesofD);
23 irasnyd 152
 
27 irasnyd 153
        //create subtrees of Y
154
        Set subtreesOfY = new HashSet();
155
        subtreesOfY.add(treeZ);
156
        subtreesOfY.add(tree1);
157
        subtreesOfY.add(tree2);
23 irasnyd 158
 
27 irasnyd 159
        //create treeY
160
        UnorderedTree treeY = new UnorderedTree("Y",subtreesOfY);
23 irasnyd 161
 
27 irasnyd 162
        //create subtrees of 4
163
        Set subtreesOf4 = new HashSet();
164
        subtreesOf4.add(treeN);
23 irasnyd 165
 
27 irasnyd 166
        //create tree4
167
        UnorderedTree tree4 = new UnorderedTree("4",subtreesOf4);
23 irasnyd 168
 
27 irasnyd 169
        //create subtrees of E
170
        Set subtreesOfE = new HashSet();
171
        subtreesOfE.add(tree3);
172
        subtreesOfE.add(treeD);
23 irasnyd 173
 
27 irasnyd 174
        //create treeE
175
        UnorderedTree treeE = new UnorderedTree("E",subtreesOfE);
23 irasnyd 176
 
27 irasnyd 177
        //create subtrees of L
178
        Set subtreesOfL = new HashSet();
179
        subtreesOfL.add(treeY);
23 irasnyd 180
 
27 irasnyd 181
        //create treeL
182
        UnorderedTree treeL = new UnorderedTree("L",subtreesOfL);
23 irasnyd 183
 
27 irasnyd 184
        //create subtrees of C
185
        Set subtreesOfC = new HashSet();
186
        subtreesOfC.add(tree4);
187
        subtreesOfC.add(treeE);
23 irasnyd 188
 
27 irasnyd 189
        //create treeC
190
        UnorderedTree treeC = new UnorderedTree("C",subtreesOfC);
23 irasnyd 191
 
27 irasnyd 192
        //create subtrees of G
193
        Set subtreesOfG = new HashSet();
194
        subtreesOfG.add(treeF);
23 irasnyd 195
 
27 irasnyd 196
        //create treeG
197
        UnorderedTree treeG = new UnorderedTree("G",subtreesOfG);
198
 
199
        //create subtrees of J
200
        Set subtreesOfJ = new HashSet();
201
        subtreesOfJ.add(treeK);
202
        subtreesOfJ.add(treeL);
203
        subtreesOfJ.add(treeM);
204
 
205
        //create treeJ
206
        UnorderedTree treeJ = new UnorderedTree("J",subtreesOfJ);
207
 
208
        //create subtrees of B
209
        Set subtreesOfB = new HashSet();
210
        subtreesOfB.add(treeC);
211
        subtreesOfB.add(treeG);
212
 
213
        //create treeB
214
        UnorderedTree treeB = new UnorderedTree("B",subtreesOfB);
215
 
216
        //create subtrees of H
217
        Set subtreesOfH = new HashSet();
218
        subtreesOfH.add(treeI);
219
        subtreesOfH.add(treeJ);
220
 
221
        //create treeH
222
        UnorderedTree treeH = new UnorderedTree("H",subtreesOfH);
223
 
224
        //create subtrees of A
225
        Set subtreesOfA = new HashSet();
226
        subtreesOfA.add(treeB);
227
        subtreesOfA.add(treeH);
228
 
229
        //create treeA
230
        UnorderedTree treeA = new UnorderedTree("A",subtreesOfA);
231
 
232
        //return the completed tree
233
        return treeA;
234
    }
235
 
23 irasnyd 236
} //end of class Driver
237