public LinkedAvlTreeNode <T> Find(T data) { LinkedAvlTreeNode <T> parent; int comparison = -1; LinkedAvlTreeNode <T> result = null; if (_root != null) { result = _root.Find(data, out parent, out comparison); } if (comparison != 0) { throw new KeyNotFoundException(); } return(result); }
internal LinkedAvlTreeNode <T> Find(T data, out LinkedAvlTreeNode <T> parent, out int comparison) { comparison = this.Data.CompareTo(data); parent = this; if (comparison < 0 && _right != null) { return(_right.Find(data, out parent, out comparison)); } if (comparison > 0 && _left != null) { return(_left.Find(data, out parent, out comparison)); } if (comparison == 0) { return(this); } return(null); }