Subversion Repositories programming

Rev

Details | Last modification | View Log | RSS feed

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