Может ли функция, которая пересекала график, работать одинаково хорошо, чтобы пересечь дерево?Перемещение графика Vs Обход дерева
ответ
Ну, дерево - это особый тип графа, называемый направленным ациклическим графом, поэтому да ... Широта Первый и Глубина Первый обход работает как дерево.
Я мог бы написать подробное объяснение различий между шириной и глубиной первых обходов, но я, вероятно, ошибаюсь (я еще не очень сильный парень-компаньон).
Достаточно сказать, что единственная разница между шириной и глубиной первого обхода - это порядок, в котором вы обрабатываете вершины. Ширина, которую вы можете представить себе как добавление вершин в очередь «для обработки». Глубина сначала вы можете представить как добавление вершин в «готовый» стек. Когда приходит время обрабатывать вершины (после того, как они добавлены в соответствующие структуры данных), вы удаляете или выкладываете стек, чтобы получить следующую вершину для обработки. Умные версии первого обхода глубины используют рекурсию для обработки вершин вместо их добавления в стек.
Я понятия не имею, был ли полезен или нет ...
Быстрый поиск Google (я не знаю, было ли это ширина или глубина первой) находит this, который, кажется, довольно хорошо описывая различия между BFS и DFS. Я также могу рекомендовать Steve Skiena The Algorithm Design Manual, если вы хотите получить более глубокое чтение.
Функция, которая может пересекать общий граф, может быть чрезмерной для прохождения дерева, потому что в чистом дереве вам не нужно проверять циклы. Так что это сработает, но так будет проще.
LOL. Я склонен думать об этом по-другому: графики - это проблема, потому что они могут содержать циклы. – dmckee
Действительно - платит за то, чтобы эти два тесно связаны в вашем уме, потому что люди очень часто начинают с дерева, а затем вводят что-то похожее на символические ссылки, как в файловой системе Unix, и вдруг у вас есть граф вместо true tree, и ваши рекурсивные алгоритмы взорвутся. –
- 1. Обход дерева в Rust vs Borrow Checker
- 2. Обход порядка двоичного дерева. Если vs while
- 3. Обход двусвязного двунаправленного n-дерева
- 4. Обход обхода двоичного дерева поиска
- 5. Неожиданный обход предварительного дерева дерева
- 6. Обход циклического направленного графика
- 7. Проблема с обход графика
- 8. Обход дерева с corecursion
- 9. Обход двоичного дерева поиска
- 10. Обход jsTree дерева
- 11. Обход дерева объектов Python
- 12. Обход дерева в C++
- 13. Обход дерева объектов
- 14. Обход двоичного дерева
- 15. обход дерева в Java
- 16. Обход дерева в прологе
- 17. Обход дерева SQL
- 18. Последовательный обход двоичного дерева
- 19. Обход дерева в javascript
- 20. обход дерева, рекурсия
- 21. Обход дерева и сериализация
- 22. JQuery обход дерева вопрос
- 23. Рекурсия в обход дерева
- 24. Обход квадратного дерева
- 25. Интервал Обход дерева
- 26. Обход двоичного дерева SQL
- 27. Обход дерева в массив
- 28. обход дерева в lisp
- 29. Обход дерева - позиция порядка
- 30. Обход порядка двоичного дерева
благодарит за ответ! Но можете ли вы немного расширить его, чтобы показать разницу между BF и DF? –
Разве дерево не направлено? –
@DominikAntal Дерево одноразовое. Узлы имеют ссылки только на своих детей, а не на дочерние узлы на родительский узел. – cbradsh1