3622
правки
Изменения
→Получение элемента по номеру
<font color=green>// Вернуть элемент HAT. Нет проверки на выход за пределы массива.</font>
'''return''' top[topIndex(j)][leafIndex(j)]
Рассмотрим как происходит вычисление адреса на примере. Пусть у нас есть HAT с размером листа равным <tex>4</tex>, тогда для нашего случая <tex>power = 2</tex> <tex>(4 = 2^2)</tex>. Получим значения функций для элемент под номером <tex>5</tex>:
*<tex>topIndex(5)</tex> : в данном случае битовый сдвиг эквивалентен опреации деления (взятию по модулю) <tex>j</tex> на <math>2^{2}</math>. То есть получим <tex>1</tex> {{---}} действительно элемент под номером <tex>5</tex> находится в первом листе (нумерция листов с <tex>0</tex>).
*<tex>leafIndex(5)</tex> : в данном случае битовый сдвиг эквивалентен умножению <tex>1</tex> на <tex>2^{2}</tex>. Тоесть после вычитания <tex>1</tex> получим число формата <tex>011..11</tex>, в нашем случае {{---}} <tex>011</tex>.