Двоичные деревья — математическая основа неравномерного кодирования. Условие Фано гарантирует однозначное декодирование.
В информатике дерево — это иерархическая структура данных, состоящая из узлов (вершин), соединённых рёбрами (связями). Верхний узел называется корнем, нижние — листьями.
Подсветите уровень — увидите, сколько узлов на нём
Задайте высоту — увидите, сколько узлов вмещает дерево
Директории и файлы организованы в иерархическое дерево. Корень — корневая папка (C:\), листья — файлы.
Пример: C:\Users\Documents\file.txt — путь от корня к листу.
B-деревья и B+-деревья индексируют записи, обеспечивая поиск за O(log n). Каждый узел — страница индекса.
Пример: PostgreSQL использует B+-деревья для индексов.
Дерево Хаффмана кодирует символы переменной длины: частые — короткими кодами, редкие — длинными.
Пример: ZIP, JPEG, MP3 используют Хаффман.
HTML-документ — дерево: <html> — корень, <body>, <head> — потомки, текст — листья.
Пример: document.querySelector() обходит DOM-дерево.
Деревья решений, минимакс, альфа-бета отсечение — алгоритмы для игр и классификации.
Пример: Шахматный движок обходит дерево ходов.
Spanning Tree Protocol (STP) предотвращает петли в Ethernet-сетях, строя остовное дерево.
Пример: Коммутаторы используют STP для резервирования.
В BST левый потомок всегда меньше родителя, правый — больше. Это обеспечивает быстрый поиск: O(log n) в сбалансированном дереве.
Обход дерева — систематическое посещение всех узлов. Три основных способа:
← Слева направо
Левое поддерево → Корень → Правое поддерево
Применение: Получение отсортированного списка из BST
↓ По контуру сверху вниз
Корень → Левое поддерево → Правое поддерево
Применение: Копирование дерева, сериализация
↑ Снизу вверх по контуру
Левое поддерево → Правое поддерево → Корень
Применение: Удаление дерева, вычисление размеров
Ни один код не является началом другого кода. Это гарантирует однозначное декодирование без lookahead.
Пример: A=0, B=10, C=110 — выполняется (префиксный код)
Контрпример: A=0, B=01 — нарушается (0 — начало 01)
Ни один код не является концом другого кода. Также гарантирует однозначность при декодировании справа налево.
Пример: A=0, B=01, C=11 — выполняется (суффиксный код)
Решите задачу. Выберите ответ или введите число.