/// <summary> /// Деление узла. /// </summary> /// <returns>Появившийся в результате деления узел.</returns> public override TreeNode <T> Split() { int from = Keys.Count / 2 + 1; int count = Keys.Count - from; InternalNode <T> sibling = Factory.CreateInternalNode(Factor); sibling.Keys.AddRange(Keys.GetRange(from, count)); sibling.Children.AddRange(Children.GetRange(from, count + 1)); Keys = Keys.GetRange(0, from - 1); Children = Children.GetRange(0, from); return(sibling); }