Напишите три функции (порядок, предварительный заказ и обход после порядка), которые принимают двоичное дерево поиска (BST) и пустой массив, пройдите, добавьте значение узла в массив ввода и верните массив.
tree = 10 / \ 5 15 / \ \ 2 5 22 / 1
in_order = [1, 2, 5, 5, 10, 15, 22] pre_order = [10, 5, 2, 1, 5, 15, 22] post_order = [1, 2, 5, 5, 22, 15, 10]
def in_order_traversal(tree, array): if tree is not None: in_order_traversal(tree.left, array) array.append(tree.value) in_order_traversal(tree.right, array) return array def pre_order_traversal(tree, array): if tree is not None: array.append(tree.value) pre_order_traversal(tree.left, array) pre_order_traversal(tree.right, array) return array def post_order_traversal(tree, array): if tree is not None: post_order_traversal(tree.left, array) post_order_traversal(tree.right, array) array.append(tree.value) return array
- N/a
- AlgoExpert для оператора проблемы
- Xkcd для изображения обложки
Оригинал: “https://dev.to/anzhari/today-i-learned-bst-traversal-52b1”