Реферат: Создание эффективной реализации сортированного списка с использованием generics
}
else
{
_currentElementIndex -= MoveCount;
CurrentLeafPage.Count -= MoveCount;
LeftPage.Count += MoveCount;
}
return;
}
}
// Если с левой страницей не получилось, попробуем с правой.
// Код этого шага аналогичен вышеприведенному.
// Его можно найти в файле, сопровождающем статью.
...
// Не получилось перебросить элементы на соседние страницы,
// так как они заполнены.
// Выделяем новую страницу аналогично тому, как это делалось выше,
// при выделении верхнего уровня, за тем исключением, что нужно
// скорректировать ссылки на близлежащие листовые страницы.
// Этот код пропущен для краткости.
...
// Вставляем ссылку на новую страницу в массив верхнего уровня
Array.Copy(NodeArray, _currentPageIndex + 1, NodeArray,
_currentPageIndex + 2, _pageCount - _currentPageIndex - 1);
NodeArray[_currentPageIndex + 1].Key = NewPage.PageItems[0].Key;
NodeArray[_currentPageIndex + 1].ChildPage = NewPage;
CurrentLeafPage.Count = BTConst.MidlCount;
NewPage.Count = BTConst.MidlCount;
// Проверяем текущую позицию вставляемого элемента (код пропущен)