예제 #1
0
        /// <summary>
        /// Считать кол-во элементов, удовлетворяющих предикату.
        /// </summary>
        /// <typeparam name="T"></typeparam>
        /// <param name="l"></param>
        /// <param name="pred"></param>
        /// <returns></returns>
        static int CountPredNode <T>(LinkedListNode <T> l, MyPred <T> pred)
        {
            if (l == null)
            {
                return(0);
            }
            var k = 0;

            NewCountPredNode(l, pred, ref k);
            return(k);
        }
예제 #2
0
 static LinkedListNode <T> NewCountPredNode <T>(LinkedListNode <T> l, MyPred <T> pred, ref int k)
 {
     if (l == null)
     {
         return(null);
     }
     if (pred(l.Value))
     {
         k++;
     }
     return(NewCountPredNode(l.Next, pred, ref k));
 }
예제 #3
0
 /// <summary>
 /// Возвращает ссылку на первый элемент, удовлетворяющий предикату.
 /// </summary>
 /// <typeparam name="T"></typeparam>
 /// <param name="l"></param>
 /// <param name="pred"></param>
 /// <returns></returns>
 static LinkedListNode <T> FirstPredNode <T>(LinkedListNode <T> l, MyPred <T> pred)
 {
     if (l == null)
     {
         return(null);
     }
     if (pred(l.Value))
     {
         return(l);
     }
     return(FirstPredNode(l.Next, pred));
 }