Subversion Repositories programming

Rev

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