Что ж, у меня есть 4 разных типа обходов дерева, которые приходят мне в голову, когда я думаю об этом:

  1. Чтобы
  2. Предзаказ
  3. PostOrder
  4. Вертикальный обход заказа
  5. Обход порядка уровней [рассматривается в другом уроке]

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 для этого

Вертикальный обход заказа

Итак, уловка в вертикальном порядке состоит в том, чтобы понять понятие расстояния по горизонтали. Все элементы с одинаковым расстоянием по горизонтали должны печататься вертикально.