Esempio n. 1
0
 /// <summary>
 /// Проверка, содержится ли вхождение поддерева на крайнем правом пути (имеет крайний правый лист дерева)
 /// </summary>
 /// <param name="entry">Вхождение поддерева</param>
 /// <returns>true, если вхождение поддерева есть на крайнем правом пути</returns>
 internal bool ContainsEntry(SubtreeEntry entry)
 {
     if (RightMostList == null || RightMostList.Count == 0)
     {
         return(false);
     }
     return(RightMostList.Any(t => t.RightMostIndex == entry.RightMostIndex));
 }
Esempio n. 2
0
        /// <summary>
        /// Добавить вхождение поддерева для текущего корня
        /// </summary>
        /// <param name="entry">Вхождение поддерева</param>
        /// <returns>1, если на крайнем правом пути есть 1 поддерево, иначе 0</returns>
        internal int AddEntry(SubtreeEntry entry)
        {
            Debug.Assert(entry.TreeId == TreeId && entry.RootIndex == RootIndex);

            if (RightMostList == null)
            {
                RightMostList = new List <SubtreeEntry>();
            }
            RightMostList.Add(entry);
            return(RightMostList.Count == 1 ? 1 : 0);
        }