public RetT?Delete(T query) { var del = BstDelete(ref root, query, _comp); if (del == null) { return(null); } return(RetT.New(del.Value.value)); }
public RetT?Search(T query) { Node <T> node = BstSearchWithParent(root, null, query, _comp).ret; if (node == null) { return(null); } return(RetT.New(node.value)); }
public RetT?Search(T query) { Node <AvlNodeInfo> node = AvlSearch(query); if (node == null) { return(null); } return(RetT.New(node.value.value)); }
public (RetT?val, RetT?parent_val) SearchWithParent(T query) { (Node <AvlNodeInfo> node, Node <AvlNodeInfo> node_parent) = AvlSearchWithParent(query); RetT?val = null; if (node != null) { val = RetT.New(node.value.value); } RetT?parent_val = null; if (node_parent != null) { parent_val = RetT.New(node_parent.value.value); } return(val, parent_val); }