11 класс, углублённый уровень. Обзорный практикум к восьмой паре: шесть задач по содержанию темы.
34. В задаче на обход —
русские заглавные буквы вершин подряд: ГЛЕБМДА, а не
Г, Л, Е…. На КЕГЭ ответ читает машина, и здесь так же.Дерево — связный граф без циклов: на n вершинах ровно n − 1 рёбер. Одна вершина — корень, у остальных ровно один родитель. Вершины без потомков — листья. Потомки вершины — всё поддерево под ней, не только ближайшие. Высота — число рёбер в самом длинном пути от корня до листа; уровней на один больше.
Первое число — корень. Каждое следующее спускается от корня: меньше — влево, больше — вправо, пока не найдёт пустое место. Поиск идёт тем же путём: сравнений столько, сколько вершин на пути.
| обход | порядок в каждом поддереве |
|---|---|
| прямой | корень, левое, правое |
| симметричный | левое, корень, правое |
| обратный | левое, правое, корень |
У дерева поиска симметричный обход выдаёт числа по возрастанию.
В листьях числа, в остальных вершинах знаки; знак применяется к левому и
правому потомку — именно в этом порядке. Прямой обход даёт
прямую польскую запись (− · 9 7 2), обратный —
обратную (9 7 · 2 −). Обратную читают слева
направо со стеком: число — в стек, знак снимает два верхних (первым
снятое — правое) и кладёт результат.
Рекурсивная функция F(n) = F(n − a) + F(n − b) порождает дерево: у вызова два потомка, вызов с базовым n — лист. Всего вызовов C(n) = 1 + C(n − a) + C(n − b), у листа C = 1; считать снизу вверх.
Материалы подготовлены с использованием технологий искусственного интеллекта.