Skip to content

Commit 556b29d

Browse files
committed
Fixed SBT tree
1 parent 280e784 commit 556b29d

File tree

1 file changed

+4
-23
lines changed

1 file changed

+4
-23
lines changed

SizeBalancedTree/SizeBalancedTree.java

Lines changed: 4 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -13,33 +13,23 @@
1313

1414
public class SizeBalancedTree <T extends Comparable<T>> implements Iterable<T> {
1515

16-
private static final int DEFAULT_SIZE = 16;
17-
1816
// Tracks the number of nodes in this tree.
1917
private int nodeCount = 0;
2018

2119
// This is a rooted tree so we maintain a handle on the root node.
2220
private Node root = null;
2321

24-
// Size tracks the number of children nodes below this number.
25-
// private int[] sz = new int[DEFAULT_SIZE];
26-
27-
// TODO: Implement TreePrinter interface
2822
class Node implements TreePrinter.PrintableNode {
2923

3024
T value;
3125

32-
// int id;
33-
3426
// The number of nodes below this node.
3527
int sz;
3628

3729
Node left, right;
3830

3931
public Node (T value) {
4032
this.value = value;
41-
id = nodeCount;
42-
// sz[id] = 0;
4333
}
4434

4535
@Override
@@ -54,7 +44,7 @@ public Node getRight() {
5444

5545
@Override
5646
public String getText() {
57-
return String.valueOf(value) + " (" + sz[id] + ")";
47+
return String.valueOf(value) + " (" + sz + ")";
5848
}
5949

6050
}
@@ -92,14 +82,6 @@ public boolean add(T elem) {
9282

9383
}
9484

95-
// private void checkSize() {
96-
// if (nodeCount + 1 == sz.length) {
97-
// int[] newSz = new int[sz.length * 2];
98-
// System.arraycopy(sz, 0, newSz, 0, sz.length);
99-
// sz = newSz;
100-
// }
101-
// }
102-
10385
// Private method to recursively add a value in the binary tree
10486
private Node add(Node node, T elem) {
10587

@@ -108,7 +90,7 @@ private Node add(Node node, T elem) {
10890
node = new Node(elem);
10991
} else {
11092

111-
sz[node.id]++;
93+
node.sz++;
11294

11395
// Pick a subtree to insert element
11496
if (elem.compareTo(node.value) < 0) {
@@ -127,15 +109,14 @@ private Node add(Node node, T elem) {
127109
private int sz(Node node) {
128110
if (node == null) return 0;
129111
return node.sz;
130-
// return sz[node.id];
131112
}
132113

133114
private Node rightRotate(Node node) {
134115
Node child = node.left;
135116
node.left = child.right;
136117
child.right = node;
137-
sz[child.id] = sz(node);
138-
sz[node.id] = sz(node.left) + sz(node.right) + 1;
118+
child.sz = sz(node);
119+
node.sz = sz(node.left) + sz(node.right) + 1;
139120
return child;
140121
}
141122

0 commit comments

Comments
 (0)