/// <summary> /// Конструктор. /// </summary> /// <param name="factor"> /// Параметр ветвления. Каждый внутренний узел содержит /// от (factor - 1) до (factor * 2 - 1) ключей и на один /// больше дочерних узлов. Для корня от 1 до (factor * 2 - 1). /// </param> public LinkedInternalNode(int factor) { Keys = new LinkedCollection <T>(); Children = new LinkedCollection <TreeNode <T> >(); Factor = factor; Factory = new LinkedNodeFactory <T>(); }
/// <summary> /// Получение части списка с заданного индекса. /// </summary> /// <param name="index">Заданный индекс.</param> /// <param name="count">Количество элементов.</param> /// <returns></returns> public IExtendedCollection <T> GetRange(int index, int count) { if (index < 0 || count < 0) { throw new ArgumentOutOfRangeException(); } if (Count < count + index) { throw new ArgumentException(); } var list = new LinkedCollection <T>(); for (int i = index; i < count + index; i++) { list.Add(this[i]); } return(list); }
/// <summary> /// Конструктор. /// </summary> /// <param name="factor"> /// Параметр ветвления. Каждый лист содержит /// от (factor - 1) до (factor * 2 - 1) ключей. /// Для корня от 1 до (factor * 2 - 1). /// </param> public LinkedLeafNode(int factor) { Keys = new LinkedCollection <T>(); Factor = factor; Factory = new LinkedNodeFactory <T>(); }