Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 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);
 }