Реферат: Создание эффективной реализации сортированного списка с использованием generics
// Увеличиваем количество хранимых элементов на странице и вставляем ключ.
CurrentLeafPage.Count++;
CurrentLeafPage.PageItems[_currentElementIndex].Key = Key;
if (_currentElementIndex==0)
NodeArray[_currentPageIndex].Key = key;
version++; // Произошли изменения, увеличиваем текущую версию.
//
// Если текущая страница листовая полностью заполнена,
// то существуют 2 варианта. Можно либо перенести элемент с текущей
// страницы на соседнюю, либо разбить страницу на 2.
//
if (CurrentLeafPage.Count == BTConst.MaxCount)
{
// Страница полностью заполнена.
// Если второго уровня нет...
if (_pageCount == 1)
{
// ... то создаем второй уровень.
//
// Для этого делим текущую страницу пополам...
LeafPage<K,V> NewPage = new LeafPage<K,V>();
// ...исправляем ссылки в полях NextPage и PriorPage
// чтобы можно было осуществлять сквозную навигацию
// по листовым страницам.
CurrentLeafPage.NextPage = NewPage;
NewPage.PriorPage = CurrentLeafPage;
// Перемещаем половину элементов исходного массива в новый.
Array.Copy(CurrentLeafPage.PageItems, BTConst.MidlCount,
NewPage.PageItems, 0, BTConst.MidlCount);