Обход дерева
-
Основы обхода дерева
- Обход дерева — это процесс последовательного посещения всех его узлов.
- Существуют различные типы обходов: предварительный, последующий, предварительный обход по порядку и другие.
- Обход используется для создания копий дерева, генерации постфиксных представлений и удаления дерева.
-
Реализация обхода
- Существуют реализации обхода в глубину, последующий обход и обход по порядку.
- Для обходов без изменения направления средняя сложность составляет O(1), а худшая сложность — O(h), где h — высота дерева.
- Для всех реализаций требуется пространство, пропорциональное высоте дерева.
-
Обход по порядку Морриса
- Моррис использует потоковую передачу для обхода дерева без рекурсии.
- Преимущества: избегает рекурсии, сохраняет родительские указатели, недостатки: сложное дерево, только один обход за раз.
-
Обход в ширину
- Псевдокод для обхода уровней на основе очередей, требует места, пропорционального количеству узлов на заданной глубине.
- Итеративный поиск с углублением в глубину может быть более экономичным.
-
Бесконечные деревья
- Обход по порядку или последующий обход не всегда охватывают все узлы бесконечных деревьев.
- Гибридные методы могут пересекать любое бесконечное дерево.
-
Рекомендации
- Ссылки на книги и ресурсы для изучения структур данных и алгоритмов.
Полный текст статьи: