Что такое бинарное дерево?

«Что такое бинарное дерево?» — вопрос из категории Архитектура, который задают на 24% собеседований AQA / Automation. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Бинарное дерево — это структура данных, где каждый узел имеет не более двух дочерних узлов (левый и правый). Корневой узел — вершина дерева, листья — узлы без потомков.

Ключевые свойства:

  • Каждый узел содержит значение (ключ) и ссылки на левого/правого потомка.
  • Упорядоченные бинарные деревья (например, бинарные деревья поиска) поддерживают порядок: левый потомок ≤ родитель ≤ правый потомок.

Пример на Python:

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

# Создание дерева
root = Node(10)
root.left = Node(5)
root.right = Node(15)

Применение: поиск, сортировка, обходы (in-order, pre-order, post-order), алгоритмы сжатия (например, Huffman coding).