@kirillleogky

Что такое Heap (куча)?

Подскажите что такое куча в js
Heap (куча) — объекты собраны в кучу, которая есть ни что иное, как название для наименее структурированной части памяти.
Не пойму никак из этого определения суть.
  • Вопрос задан
  • 7056 просмотров
Решения вопроса 1
wataru
@wataru
Разработчик на С++, экс-олимпиадник.
Есть 2 области памяти - куча и стек. Куча - это просто память из которой можно выделять сколько-то байт под ваши объекты. Где они будут в куче вы заранее знать не можете. Стек же используется для вызовов функций, передачи параметров и для локальных переменных. В стеке нельзя выделить байты из середины - байты всегда выделяются с одного конца и освобождать можно только крайнюю (последнюю выделенную) область. Стек - он как тупиковая ветка железной дороги. Можно туда загонять новые вагоны и удалять оттуда, но только с конца.

Тут должно быть понятно, что у стека есть какая-то структура, а у кучи никакой структуры нет - поэтому она "не структурированная" область памяти.
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
SilenceOfWinter
@SilenceOfWinter
та еще зажигалка...
Кучи - это древовидные структуры, которые следуют свойствам кучи: каждый узел больше или равен своим потомкам, при этом для сравнения используется внедренный метод сравнения, который является общим для всей кучи.
т.е. добавляем элементы в кучу в разном порядке, а в итоге формируется та самая увеличивающаяся "куча"
1
         |
+-----+--+--+-----+
|     |     |     |
2     3     4     5
|     |           |
+   +-+-+         +
|   |   |         |
7   6   8         9
                  |
                +-+-+
                |   |
               10   11
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы