public object visit(NonEmptyNode nonEmptyNode) { if (x < nonEmptyNode.getKey()) { nonEmptyNode.setLeft((Node)nonEmptyNode.getLeft().accept(this)); } else if (x > nonEmptyNode.getKey()) { nonEmptyNode.setRight((Node)nonEmptyNode.getRight().accept(this)); } else { if (nonEmptyNode.getLeft().isEmpty()) { return(nonEmptyNode.getRight()); } else if (nonEmptyNode.getRight().isEmpty()) { return(nonEmptyNode.getLeft()); } Node temp = nonEmptyNode; nonEmptyNode = (NonEmptyNode)temp.getRight().accept(new NodeMinimumSearchingVisitor()); nonEmptyNode.setRight((Node)temp.getRight().accept(new NodeMinimumDeletionVisitor())); nonEmptyNode.setLeft(temp.getLeft()); } return(nonEmptyNode); }
public object visit(NonEmptyNode nonEmptyNode) { if (x == nonEmptyNode.getKey()) { return(nonEmptyNode); } if (x < nonEmptyNode.getKey()) { return(nonEmptyNode.getLeft().accept(this)); } else { return(nonEmptyNode.getRight().accept(this)); } }
public object visit(NonEmptyNode nonEmptyNode) { if (newKey.Equals(nonEmptyNode.getKey())) { throw new KeyAlreadyExistException(newKey + " already exists"); } if (newKey < nonEmptyNode.getKey()) { nonEmptyNode.setLeft((NonEmptyNode)nonEmptyNode.getLeft().accept(this)); } else { nonEmptyNode.setRight((NonEmptyNode)nonEmptyNode.getRight().accept(this)); } return(nonEmptyNode); }
public object visit(NonEmptyNode nonEmptyNode) { if (nonEmptyNode.getKey() == x) { return(currentLengthPath); } currentLengthPath++; int resultFromLeft = (int)nonEmptyNode.getLeft().accept(this); int resultFromRight = (int)nonEmptyNode.getRight().accept(this); currentLengthPath--; return(resultFromLeft != -1 ? resultFromLeft : resultFromRight); }