Информатика • 11 класс
3

Использование стека и очереди для обхода дерева (C++)

  • Обход в глубину (DFS) с использованием стека. Идея: идём до конца по одной ветке, возвращаемся к последней «развилке» с помощью стека.
    • Варианты DFS (порядок посещения корня):
      • прямой (Pre-order): корень → левый → правый;
      • симметричный (In-order):  левый → корень → правый;
      • обратный (Post-order):  левый → правый → корень.
    • Алгоритм на примере Pre-order:
      • создать пустой стек;
      • положить в стек корень дерева;
      • пока стек не пуст:
        • извлечь верхний узел из стека (top → pop) и обработать его;
        • положить в стек его правого потомка (если есть);
        • положить в стек его левого потомка (если есть).
  • Обход в ширину (BFS) с использованием очереди. Идея: посещаем узлы уровень за уровнем (сначала корень, потом всех его непосредственных потомков, потом потомков потомков и т. д.).
    • Алгоритм:
      • создать пустую очередь;
      • положить в очередь корень дерева;
      • пока очередь не пуста:
        • извлечь узел из начала очереди (front → pop), обработать его;
        • положить в конец очереди всех его потомков (сначала левого, потом правого);
      • результат: узлы в порядке уровней.
Было полезно?

Рекомендуем

Вы учитель или ученик?
Познакомьтесь с нашим образовательным онлайн-сервисом с тысячами интерактивных работ
Учителю
Удобно проводить уроки в классе, назначать работы на дом и анализировать результаты всего класса или конкретных учеников
Ученику
Самостоятельно изучать новые и повторять пройденные темы, готовиться по индивидуальной траектории и оценивать результаты на наглядных графиках
Зарегистрироваться в «Облаке знаний»
Логотип облако знаний
+7 (499) 322-07-57
info@oblakoz.ru

Контактный центр

МО, г. Долгопрудный,
Лихачевский проезд, 4, стр. 1

Отдел заботы о пользователях

Политика конфиденциальности

© ООО «Физикон Лаб», 2025

Пользуясь нашим сайтом, вы соглашаетесь с тем, что мы используем cookies 🍪