Бинарная куча
определение
Бинарная (двоичная) куча — структура данных, эффективно реализует следующие операции:

  1. добавить элемент,
  2. найти максимальный элемент,
  3. удалить максимальный элемент.
Куча представляет собой полное двоичное дерево, в котором каждый элемент не меньше своих потомков.
СПОСОБЫ РЕАЛИЗАЦИИ бинарной кучи
Модуль heapq Python входит в стандартную библиотеки. Этот модуль реализует все операции с кучей низкого уровня и некоторые общие высокоуровневые операции с кучей.

Основные операции:

heapify(iterable) - используется для преобразования итерации в структуру данных кучи.

heappush(heap, element) - используется для вставки элемента данных, указанного в его параметрах, в кучу.

heappop(heap) - используется для удаления и возврата наименьшего элемента данных из кучи.

heappushpop(heap, element) - используется для объединения операций push и pop в одном операторе, что приводит к повышению эффективности.
Создание кучи из списка
import heapq

mylist = [14, 23, 4, 43, 34, 9, 18, 1, 25, 8]

heapq.heapify(mylist)

heapq.heappush(mylist, 20)

print(mylist)
КОГДА ЛУЧШЕ ИСПОЛЬЗОВАТЬ
Задача поиска и удаления минимума или максимума в пополняемой коллекции.