Example #1
0
        // value associated with the given predicator; null if no such element
        public bool TryFind(SearchPredicator <TEl> predicator, out TEl element)
        {
            var node = FindNode(Root, predicator);

            if (node != null)
            {
                element = node.Element;
                return(true);
            }

            element = default(TEl);
            return(false);
        }
Example #2
0
 protected TNode FindNode(TNode x, SearchPredicator <TEl> predicator)
 {
     while (x != null)
     {
         var cmp = predicator.ElementCompliance(x.Element);
         if (cmp < 0)
         {
             x = x.Left;
         }
         else if (cmp > 0)
         {
             x = x.Right;
         }
         else
         {
             return(x);
         }
     }
     return(x);
 }