11 {
12 BinaryTree<Integer> root=new BinaryTree<Integer>(0);
13 assertTrue(root.isRoot());
14 assertTrue(root.isLeaf());
15 assertSame(root.getParent(),null);
16 assertSame(root.getLeft(),null);
17 assertSame(root.getRight(),null);
18 assertSame(root.getRoot(),root);
19
20 BinaryTree<Integer> b=new BinaryTree<Integer>(2);
21 BinaryTree<Integer> c=new BinaryTree<Integer>(3);
22 BinaryTree<Integer> d=new BinaryTree<Integer>(4);
23
24 BinaryTree<Integer> a=new BinaryTree<Integer>(1,b,c);
25 assertTrue(!b.isRoot());
26 assertTrue(!c.isRoot());
27 assertTrue(!a.isLeaf());
28 assertSame(a.getLeft(),b);
29 assertSame(a.getRight(),c);
30 assertSame(b.getParent(),a);
31 assertSame(c.getParent(),a);
32 assertSame(a.getRoot(),a);
33 assertSame(b.getRoot(),a);
34 assertSame(c.getRoot(),a);
35
36 root.setLeft(a);
37 root.setRight(d);
38
39 assertSame(a.getParent(),root);
40 assertSame(d.getParent(),root);
41
42 assertSame(root.getLeft(),a);
43 assertSame(root.getRight(),d);
44
45
46 assertTrue(!a.isRoot());
47 assertTrue(!d.isRoot());
48
49 assertSame(d.getRoot(),root);
50 assertSame(c.getRoot(),root);
51 assertSame(b.getRoot(),root);
52 assertSame(c.getRoot(),root);
53
54 assertTrue(!root.isLeaf());
55 assertTrue(!a.isLeaf());
56 assertTrue(b.isLeaf());
57 assertTrue(c.isLeaf());
58 assertTrue(d.isLeaf());
59
60
61 Vector<Integer> nodes=new Vector<Integer>();
62 for (BinaryTree<Integer> node : root.preorder())
63 nodes.push_back(node.getData());
64 assertSame(nodes.size(),5);
65 assertSame(nodes.at(0).intValue(),0);
66 assertSame(nodes.at(1).intValue(),1);
67 assertSame(nodes.at(2).intValue(),2);
68 assertSame(nodes.at(3).intValue(),3);
69 assertSame(nodes.at(4).intValue(),4);
70
71
72 nodes=new Vector<Integer>();
73 for (BinaryTree<Integer> node : root.inorder())
74 nodes.push_back(node.getData());
75 assertSame(nodes.size(),5);
76 assertSame(nodes.at(0).intValue(),2);
77 assertSame(nodes.at(1).intValue(),1);
78 assertSame(nodes.at(2).intValue(),3);
79 assertSame(nodes.at(3).intValue(),0);
80 assertSame(nodes.at(4).intValue(),4);
81
82
83
84 nodes=new Vector<Integer>();
85 for (BinaryTree<Integer> node : root.postorder())
86 nodes.push_back(node.getData());
87 assertSame(nodes.size(),5);
88 assertSame(nodes.at(0).intValue(),2);
89 assertSame(nodes.at(1).intValue(),3);
90 assertSame(nodes.at(2).intValue(),1);
91 assertSame(nodes.at(3).intValue(),4);
92 assertSame(nodes.at(4).intValue(),0);
93
94
95
96 nodes=new Vector<Integer>();
97 for (BinaryTree<Integer> node : root.levelorder())
98 nodes.push_back(node.getData());
99 assertSame(nodes.size(),5);
100 assertSame(nodes.at(0).intValue(),0);
101 assertSame(nodes.at(1).intValue(),1);
102 assertSame(nodes.at(2).intValue(),4);
103 assertSame(nodes.at(3).intValue(),2);
104 assertSame(nodes.at(4).intValue(),3);
105 }