Бинарные деревья и очереди с приоритетом в Swift
В серии из двух статей рассматриваются свойства очереди с приоритетом и то, как она может быть реализована с помощью массива для хранения структуры бинарного дерева.
За основу взята книга: «Алгоритмы и структуры данных» Марчелло Ла Рокка.
В первой части описаны необходимые операции для очереди с приоритетом. Показано, как ее можно представить в виде двоичного дерева и как можно использовать массив для управления очередью.
Во втором блоке демонстрируется swift-код для реализации очереди с приоритетом. API полагается на две внутренние функции (bubbleUp и pushDown), чтобы вернуть очередь в приоритетный порядок после выполнения операции.
А в ноушне есть целый ряд примеров и подходов к решению самых разных алгоритмических задач.