- #1
giantimi
- 2
- 0
Hello, I am having some trouble with my red and black tree. I made up a parent method which finds the node before the node and then sets an iterator to that node. The code is below:
private RBNode parent(Comparable x, RBNode i) {
RBNode tmp = new RBNode(null,null,null);
if(i==null || x==null)
return null;
if( (i.left!=null && x==i.left.data )|| (i.right!=null && x==i.right.data)){
tmp.setCurrent(i);
System.out.println(tmp.getCurrent().data);
}
else if(x.compareTo(i.data)<0)parent(x,i.left);
else if(x.compareTo(i.data)>0)parent(x,i.right);
return tmp;
}
My problem is that from the way my test program runs for the entire tree, something is wrong...I think the problem is that the parent method is returning something else. I'm not sure what that is or exactly how it is doing that. Any help would be greatly appreciated!
private RBNode parent(Comparable x, RBNode i) {
RBNode tmp = new RBNode(null,null,null);
if(i==null || x==null)
return null;
if( (i.left!=null && x==i.left.data )|| (i.right!=null && x==i.right.data)){
tmp.setCurrent(i);
System.out.println(tmp.getCurrent().data);
}
else if(x.compareTo(i.data)<0)parent(x,i.left);
else if(x.compareTo(i.data)>0)parent(x,i.right);
return tmp;
}
My problem is that from the way my test program runs for the entire tree, something is wrong...I think the problem is that the parent method is returning something else. I'm not sure what that is or exactly how it is doing that. Any help would be greatly appreciated!