/// <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)); }
/// <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); }