/// <summary> /// Добавить вхождение дерева в словарь вхождений по глубинам /// </summary> /// <param name="entry">Вхождение дерева</param> internal void AddEntry(SubtreeEntry entry) { if (!DepthEntriesDictionary.ContainsKey(entry.Depth)) { DepthEntriesDictionary.Add(entry.Depth, new DepthEntries(entry.Depth)); } if (!DepthEntriesDictionary[entry.Depth].ContainsEntry(entry)) { if (!SupportTreeSet.Contains(entry.TreeId)) { SupportTreeSet.Add(entry.TreeId); } DepthEntriesDictionary[entry.Depth].AddEntry(entry); } }
/// <summary> /// Проверка наличия индекса корня /// </summary> /// <param name="depth">Глубина</param> /// <param name="treeId">Id дерева</param> /// <param name="rootIndex">Индекс корня</param> /// <returns>true, если запись </returns> internal bool ContainsRootIndex(int depth, string treeId, int rootIndex) { return(DepthEntriesDictionary.ContainsKey(depth) && (DepthEntriesDictionary[depth].ContainsRootIndex(treeId, rootIndex))); }
/// <summary> /// Проверка вхождения поддерева на определенной глубине /// </summary> /// <param name="depth">Глубина</param> /// <param name="treeId">Id поддерева</param> /// <returns>true, если поддерево на заданной глубине существует</returns> internal bool ContainsTreeAtDepth(int depth, string treeId) { return(DepthEntriesDictionary.ContainsKey(depth) && DepthEntriesDictionary[depth].ContainsTree(treeId)); }
/// <summary> /// Проверка, есть ли записи деревьев в словаре вхождений по глубинам текущего дерева /// </summary> /// <param name="depth">Глубина</param> /// <returns>true, если запись есть</returns> internal bool ContainsDepth(int depth) { return(DepthEntriesDictionary.ContainsKey(depth)); }