1 import java.util.Iterator;
2
3 /**
4 This program demonstrates tree traversal.
5 */
6 public class TraversalDemo
7 {
8 public static void main(String[] args)
9 {
10 Tree t1 = new Tree("Anne");
11 Tree t2 = new Tree("Peter");
12 t1.addSubtree(t2);
13 Tree t3 = new Tree("Zara");
14 t1.addSubtree(t3);
15 Tree t4 = new Tree("Savannah");
16 t2.addSubtree(t4);
17
18 // Count short names with visitor
19 class ShortNameCounter implements Tree.Visitor
20 {
21 public int counter = 0;
22 public void visit(Object data)
23 {
24 System.out.println(data);
25 if (data.toString().length() <= 5) { counter++; }
26 }
27 }
28
29 ShortNameCounter v = new ShortNameCounter();
30
31 t1.preorder(v);
32 System.out.println("Short names: " + v.counter);
33
34 // Count short names with iterator
35 Iterator iter = t1.iterator();
36 int counter = 0;
37 while (iter.hasNext())
38 {
39 Object data = iter.next();
40 System.out.println(data);
41 if (data.toString().length() <= 5) { counter++; }
42 }
43 System.out.println("Short names: " + counter);
44 }
45 }