Структура данных Heap (кучи) и Stack (стека)
В этой теме мы рассмотрим:
-
что такое Heap (куча) и как с ней работать;
-
пример работы Heap в Golang;
-
что такое Stack (стек) и как он работает;
-
пример работы Stack в Golang.
Heap (куча)
Структура данных куча представляет собой полное двоичное дерево, удовлетворяющее свойству кучи, в котором любой заданный узел:
-
всегда больше, чем его дочерние узлы, а ключ корневого узла является самым большим среди всех других узлов (это свойство называется Max Heap).
-
всегда меньше, чем дочерний узел/узлы, а ключ корневого узла меньше всех остальных узлов (это свойство называется Min Heap).
Max-Heap
Min-Heap
Этот тип структуры данных также называется двоичной кучей.