Back to questions
Junior — Middle
63
Объясните механизм работы структуры данных - бинарное дерево для быстрого поиска элементов.
Answer from AI
sobes.tech AI
Бинарное дерево поиска (Binary Search Tree, BST) — это структура данных, где каждый узел содержит ключ, а для каждого узла выполняется условие:
- Все ключи в левом поддереве меньше ключа узла.
- Все ключи в правом поддереве больше ключа узла.
Это упорядоченность позволяет быстро искать элементы, начиная с корня и переходя налево или направо в зависимости от сравнения ключа.
Механизм поиска:
- Начинаем с корня дерева.
- Сравниваем искомый ключ с ключом текущего узла.
- Если ключ совпал — возвращаем узел.
- Если искомый ключ меньше — переходим в левое поддерево.
- Если больше — в правое поддерево.
- Повторяем, пока не найдем элемент или не достигнем листа (элемента без детей).
В среднем поиск занимает O(log n) времени, если дерево сбалансировано.
Пример на Java:
class Node {
int key;
Node left, right;
Node(int item) {
key = item;
left = right = null;
}
}
class BST {
Node root;
Node search(Node root, int key) {
if (root == null || root.key == key)
return root;
if (key < root.key)
return search(root.left, key);
else
return search(root.right, key);
}
}