コード例 #1
0
 static void MergeNodeSequenceUntilStrategyFails <T>(
     WorkList <T> dst,
     WorkList <T> src,
     Position popPos,
     Func <T, T, bool> merge) where T : class
 {
     while (!dst.IsEmpty && !src.IsEmpty)
     {
         var srcNode = src.Peek(popPos);
         var dstNode = dst.Peek(popPos);
         if (merge(dstNode, srcNode))
         {
             dst.Pop(popPos);
             src.Pop(popPos);
         }
         else
         {
             break;
         }
     }
 }