Мені здається, що обхід попереднього замовлення та DFS однакові, як в обох випадках ми проходимо від кореня до лівої гілки та назад до кореня, а потім до правої гілки рекурсивно. Чи міг би виправити мене, якщо я помиляюся?
Спасибі заздалегідь!
Мені здається, що обхід попереднього замовлення та DFS однакові, як в обох випадках ми проходимо від кореня до лівої гілки та назад до кореня, а потім до правої гілки рекурсивно. Чи міг би виправити мене, якщо я помиляюся?
Спасибі заздалегідь!
Відповіді:
попереднє обхід - це обхід, він відвідує кожен вузол бінарного дерева
Перший глибинний пошук - це пошук, він обходить довільний графік, який шукає певний вузол (що він найкраще працює в нециклічному графіку (ака-дерево) не має значення)
одне це лише велика різниця, щоб назвати їх іменами різниць
Так, але це має бути навпаки: DFS
схоже на PreOrder
.
Термін PreOrder
більше стосується двійкових дерев і парсерів.
Він використовується для порівняння з іншими обхідними замовленнями бінарного дерева: InOrder
, PostOrder
і PreOrder
.
Топологічний сортування схожий на обхід поштового замовлення (натисніть вузол у стек після відвідування всіх сусідніх вузлів).
Для обходу бінарного дерева в Попередньому порядку проводяться наступні операції
Тобто на зображенні нижче попередній обхід попереднього замовлення склав би 1,2,3,6,4,5,7,8,9,10,11,12
У цьому ж зображенні 1,2,3,4,5,6,7,8,9,10,11,12 було б для DFS
Джерело DFS: http://datastructuresnotes.blogspot.in/2009/02/binary-tree-traversal-preorder-inorder.html
Джерело попереднього замовлення: Wiki