EssayAI
Блог
Блог

структуры данных

Статьи EssayAI по теме «структуры данных»: разборы, методы и примеры.

Куча как структура данных: массив и просеивание

Куча как структура данных: массив и просеивание

Куча как структура данных: свойство кучи, хранение в обычном массиве и индексы 2i+1 и 2i+2, просеивание sift-up и sift-down, построение за O(n) и приоритетная очередь.

24 сентября 202610 минут
Стек и очередь: чем LIFO отличается от FIFO

Стек и очередь: чем LIFO отличается от FIFO

Стек и очередь рядом: дисциплины LIFO и FIFO и порядок выхода элементов, очередь на кольцевом буфере за O(1), дек, таблица сложности операций и примеры применения.

24 сентября 20269 минут
Кольцевой буфер: реализация на массиве и индексах

Кольцевой буфер: реализация на массиве и индексах

Как реализовать кольцевой буфер на обычном массиве: индексы head и tail, формулы через остаток от деления, проблема совпадения head и tail и её решение счётчиками операций.

11 июня 20269 минут
Поиск в двоичном дереве поиска: алгоритм и сложность

Поиск в двоичном дереве поиска: алгоритм и сложность

Как работает поиск в двоичном дереве поиска (BST): пошаговый алгоритм, число сравнений в среднем и худшем случае, влияние баланса дерева и типичные ошибки в задачах.

11 июня 20267 минут
Стек на списке: реализация push и pop через массив

Стек на списке: реализация push и pop через массив

Как реализовать стек на списке: индекс вершины, амортизированная сложность push O(1), расширение массива вдвое при переполнении и почему pop не освобождает память сразу.

11 июня 20267 минут
Высота и глубина дерева: формулы и примеры

Высота и глубина дерева: формулы и примеры

Разбираем высоту и глубину дерева в информатике: точные определения, формулы для полного двоичного и вырожденного дерева, примеры задач и типичные ошибки.

11 июня 20268 минут
B-дерево: вставка ключа и разделение узла

B-дерево: вставка ключа и разделение узла

Разбираем вставку в B-дерево по шагам: минимальная степень t, инвариант t-1..2t-1 ключей и разделение переполненного узла с подъёмом среднего ключа к родителю.

12 марта 20269 минут
AVL-дерево: как работает балансировка и ротации

AVL-дерево: как работает балансировка и ротации

Разбираем, как AVL-дерево восстанавливает баланс после вставки и удаления: инвариант высоты, balance factor и четыре ротации LL, RR, LR, RL за O(log n).

28 февраля 20268 минут
Куча Фибоначчи: ленивая структура и амортизация

Куча Фибоначчи: ленивая структура и амортизация

Куча Фибоначчи: амортизированный на insert и decrease-key, ленивая консолидация при extract-min, потенциал, каскадный cut и применение в алгоритме Дейкстры.

27 февраля 20268 минут
Биномиальная куча: операции и слияние за O(log n)

Биномиальная куча: операции и слияние за O(log n)

Биномиальная куча: как устроен лес деревьев, зачем нужно слияние двух куч за O(log n) и чем она лучше бинарной. Разбираем операции insert, extract-min и merge на примерах.

22 февраля 20268 минут
Splay-дерево: самобалансирующееся BST с поворотами к корню

Splay-дерево: самобалансирующееся BST с поворотами к корню

Splay-дерево Слейтора и Тарьяна: операция splay через zig, zig-zig и zig-zag, амортизированная сложность O(log n) через potential function и сравнение с AVL/Red-Black.

14 февраля 202610 минут