Что такое двоичное дерево поиска?
Бинарное дерево поиска - это бинарное дерево с корнем, внутренние узлы которого хранят ключ, а каждый узел имеет два выделенных поддерева слева и справа. Дерево двоичного поиска выполняет определенное свойство упорядочения, которое гласит, что ключ в каждом узле должен быть больше или равен любому ключу, хранящемуся в левом поддереве, и меньше или равен любому ключу, хранящемуся в правом поддереве.
Хватит говорить, приступим к кодированию 😁
Теперь давайте добавим метод push к прототипу BinarySearchTree, чтобы добавить к нему узлы.
Самая распространенная операция, выполняемая над двоичным деревом поиска, - это поиск и проверка того, существует ли данный узел или нет.
Теперь рассмотрим различные способы обхода двоичного дерева поиска.
inorder (узел)
- Пройдите по левому поддереву, т.е. выполните упорядочение по левому поддереву
- Посетите корень
- Пройдите по правому поддереву, т.е. выполните упорядочение по правому поддереву
предварительный заказ (узел)
- Посетите корень
- Пройдите по левому поддереву, то есть выполните предварительный заказ на левом поддереве
- Пройдите по правому поддереву, то есть выполните предварительный заказ на правом поддереве
postorder (узел)
- Пройдите по левому поддереву, т.е. выполните поступорядочение на левом поддереве
- Пройдите по правому поддереву, т.е. выполните поступорядочение по правому поддереву
- Посетите корень
Обход дерева порядка без рекурсии.
Примечание. Обход дерева порядка следования в двоичном дереве поиска гарантирует отсортированный вывод.
Что такое n-ary Tree?
n-арное дерево - это корневое дерево, в котором каждый узел имеет не более n дочерних элементов. Бинарное дерево - это частный случай, когда n = 2, а троичное дерево - это еще один случай, когда n = 3, что ограничивает количество его дочерних элементов тремя.
Теперь давайте посмотрим на обход этого дерева до и после завершения.
До сих пор мы видели обходы дерева при поиске в глубину (dfs), теперь мы увидим, как выполнить обход дерева при поиске в ширину (bfs).
По умолчанию javascript не предоставляет никакой структуры данных очереди, вот как мы можем реализовать это в javascript.
Надеюсь, вам понравилась эта статья. Пожалуйста, хлопните в ладоши или шесть, если вам это понравилось.
Удачного обучения !! Приятного чтения !! 😃 😄 😀