How Do You Debug a Parent Method in a Red-Black Tree?

  • Thread starter Thread starter giantimi
  • Start date Start date
  • Tags Tags
    Binary Code Tree
AI Thread Summary
The user is experiencing issues with their parent method in a red-black tree implementation, which is intended to find the parent node of a given node. The code provided is not functioning as expected, particularly in the recursive calls, which do not return any values. A suggestion was made to ensure that the recursive calls to the parent method return their results, as this could resolve the issue. The user found this advice helpful and expressed gratitude for the assistance. Debugging the return values in recursive methods is crucial for proper functionality in tree structures.
giantimi
Messages
2
Reaction score
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!
 
Physics news on Phys.org
These lines:

else if(x.compareTo(i.data)<0)parent(x,i.left);
else if(x.compareTo(i.data)>0)parent(x,i.right);

don't actually do anything. Perhaps you meant to return the value returned by your recursive calls to parent().

- Warren
 
Thanks

Thanks a lot, that helped a ton.
 

Similar threads

Back
Top