+ // Debugging ///////////////////////////////////////////////////////////////////////////
+
+ public void printTree() {
+ if(root == 0) System.err.println("Tree is empty");
+ else printTree(root,0,false);
+ }
+ private void printTree(int node,int indent,boolean l) {
+ for(int i=0;i<indent;i++) System.err.print(" ");
+ if(node < 0) System.err.println((l?"Prev: " : "Next: ") + -node);
+ else if(node == 0) System.err.println(l ? "Start" : "End");
+ else {
+ System.err.print("" + node + ": " + objects[node]);
+ System.err.println(" Parent: " + parent[node]);
+ printTree(left[node],indent+1,true);
+ printTree(right[node],indent+1,false);
+ }
+ }