Что ж, у меня есть 4 разных типа обходов дерева, которые приходят мне в голову, когда я думаю об этом:
- Чтобы
- Предзаказ
- PostOrder
- Вертикальный обход заказа
- Обход порядка уровней [рассматривается в другом уроке]
Inorder Traversal
Algorithm Inorder(tree) 1. Traverse the left subtree, i.e., call Inorder(left-subtree) 2. Visit the root. 3. Traverse the right subtree, i.e., call Inorder(right-subtree)
Моя реализация на основе Java для этого
PostOrder Traversal
Algorithm Postorder(tree) 1. Traverse the left subtree, i.e., call Postorder(left-subtree) 2. Traverse the right subtree, i.e., call Postorder(right-subtree) 3. Visit the root.
Моя реализация на основе Java для этого
Предварительный просмотр
Algorithm Preorder(tree) 1. Visit the root. 2. Traverse the left subtree, i.e., call Preorder(left-subtree) 3. Traverse the right subtree, i.e., call Preorder(right-subtree)
Моя реализация на основе Java для этого
Вертикальный обход заказа
Итак, уловка в вертикальном порядке состоит в том, чтобы понять понятие расстояния по горизонтали. Все элементы с одинаковым расстоянием по горизонтали должны печататься вертикально.