public static bool havingOnlyOneChild(Node node) { if ((node.getRight().isEmpty() && !node.getLeft().isEmpty()) || (node.getLeft().isEmpty() && !node.getRight().isEmpty())) { return(true); } else { return(false); } }
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 override void traverse(Node node) { if (node.isEmpty()) { return; } traverse(node.getLeft()); traverse(node.getRight()); action.run(node); }
public static bool havingBothChildren(Node node) { if (!node.getRight().isEmpty() && !node.getLeft().isEmpty()) { return(true); } else { return(false); } }