Sobes.tech
Back to questions
Junior — Middle
50

Объясните концепцию бинарного дерева поиска и его основные свойства.

Companies where asked
Баланс-ПлатформаБаланс-Платформа

Answer from AI

sobes.tech AI

Бинарное дерево поиска (Binary Search Tree, BST) — это структура данных, где каждый узел содержит ключ и два поддерева: левое и правое. Основные свойства:

  • Для любого узла все ключи в левом поддереве меньше ключа этого узла.
  • Все ключи в правом поддереве больше ключа узла.
  • Поддеревья также являются бинарными деревьями поиска.

Это позволяет эффективно выполнять операции поиска, вставки и удаления за время, пропорциональное высоте дерева (в среднем — O(log n)).

Пример на Python:

class Node:
    def __init__(self, key):
        self.key = key
        self.left = None
        self.right = None

class BST:
    def __init__(self):
        self.root = None

    def insert(self, key):
        if not self.root:
            self.root = Node(key)
            return
        current = self.root
        while True:
            if key < current.key:
                if current.left:
                    current = current.left
                else:
                    current.left = Node(key)
                    break
            else:
                if current.right:
                    current = current.right
                else:
                    current.right = Node(key)
                    break