|
0 / 0 / 2
Регистрация: 11.10.2016
Сообщений: 116
|
|
Реализация обхода в ширину и глубину бинарного дерева14.06.2018, 20:45. Показов 17910. Ответов 7
Метки нет (Все метки)
Как реализовать обход дерева (глубины три, т.е. трех уровневое) в глубину и ширину и что под этим подразумевается?
0
|
|
| 14.06.2018, 20:45 | |
|
Ответы с готовыми решениями:
7
Разобраться с рекурсивной функцией обхода бинарного дерева Пронумеровать вершины бинарного дерева в соответствии с порядком концевого обхода Реализация бинарного дерева |
|
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
|
|
| 14.06.2018, 21:02 | |
|
Можно же всё найти, если поискать: https://medium.com/@dimko1/%D0... 54848c2d47
Скорее всего на форуме в блогах тоже есть подобная инфа и реализации.
0
|
|
|
0 / 0 / 2
Регистрация: 11.10.2016
Сообщений: 116
|
|
| 14.06.2018, 21:06 [ТС] | |
|
SuperKir, та я читал но там на графах и используют контейнеры
0
|
|
|
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
|
|
| 14.06.2018, 21:17 | |
|
nenahov, А что есть дерево по-твоему?
0
|
|
|
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
|
|
| 16.06.2018, 20:03 | |
|
Ромаха, и какая же?)
0
|
|
| 16.06.2018, 22:43 | |||||||||||
|
Например, dfs
для графа
0
|
|||||||||||
|
1505 / 969 / 812
Регистрация: 30.04.2016
Сообщений: 3,337
|
||||||
| 03.10.2018, 20:06 | ||||||
|
nenahov, здравствуйте! Я сейчас довольно активно изучаю бинарные деревья. В посте #2 вам дали правильную ссылку, однако можно найти гораздо больше материала с помощью англоязычного поиска. Действительно, существует два обхода - в ширину и глубину. Обход в глубину разбивается на три вида: preorder traversal, inorder traversal и postorder traversal. Эти три обхода (а именно, вывод узлов уже построенного дерева) в коде лишь различаются расположением функции printf() или cout (обычно это происходит рекурсивно), однако имеют очень большое практическое применение. В частности, с помощью inorder traversal можно вывести узлы в отсортированном порядке, а если добавить множество, то перевести, к примеру, обычное бинарное дерево в бинарное дерево поиска (не нарушая структуру). Более того, данные три вида обходов применяются при выводе нотаций (префиксная, инфиксная и постфиксная). Так, построив бинарное дерево выражений (binary expression tree) можно постфиксную запись, без особого труда, перевести в инфиксную или префиксную (будет меняться лишь тип обхода при выводе). Я рекомендую вам поискать в англоязычном поиске задачи, а именно, посмотреть binary search tree (BST) и binary expression tree и вы найдете целое множество примеров на использование деревьев. Я со своей стороны даю вам ссылку на код, который недавно реализовал с помощью очереди - это обход бинарного дерева в ширину: Задача на интересное применение очереди (обход дерева в ширину) Что касается обхода в глубину (их три), советую вам разобрать их на примере бинарного дерева поиска - это, кстати, очень классная тренировка на понимание рекурсии.
P.S. Я мог бы рассказать вам гораздо больше, если вы действительно заинтересованы в данной тематике. Добавлено через 9 минут Кстати, недавно сдавал задачу на сервере на тему "бинарное дерево поиска". Немного изменив структуру программы, удалось вывести частоты появления элементов для заданной последовательности. Это еще одно доказательство того, что данная структура данных помогает найти довольно быстрое и интересное решение для насущной проблемы Вот код:
0
|
||||||
| 03.10.2018, 20:06 | |
|
Помогаю со студенческими работами здесь
8
Реализация бинарного дерева Реализация бинарного дерева поиска Реализация и вывод бинарного дерева Реализация бинарного дерева классом Реализация бинарного дерева поиска Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога
Финальные проекты на Си и на C++:
hello-sdl3-c. zip
hello-sdl3-cpp. zip
Результат:
|
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога
MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
|
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд.
Даже если у вас. . .
|
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает
монорепозиторий в котором находятся все исходники.
При создании нового решения, мы просто добавляем нужные проекты
и имеем. . .
|
|
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение:
В этой книге («Подход, основанный на вариантах использования») Ивар утверждает,
что архитектура программного обеспечения — это
структуры,. . .
|
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога
Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
|
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip
На первой гифке отладочные линии отключены, а на второй включены:. . .
|
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога
Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем.
. . .
|