> Пример использования деревьев (Python)
Уровень: senior · Роль: backend · Язык: Python · Категория: Технические вопросы
Компании: Sunlight
Стек: Python
> Пример ответа
Деревья в Python активно применяются для представления иерархических данных и оптимизации поиска. Например, при реализации файловой системы или парсинга HTML/XML. Рассмотрим простой пример бинарного дерева поиска (BST) для хранения чисел с операциями вставки и поиска:
PYTHONclass TreeNode:def __init__(self, value):self.value = valueself.left = Noneself.right = Noneclass BinarySearchTree:def __init__(self):self.root = Nonedef insert(self, value):if not self.root:self.root = TreeNode(value)else:self._insert_recursive(self.root, value)def _insert_recursive(self, node, value):if value < node.value:if node.left is None:node.left = TreeNode(value)else:self._insert_recursive(node.left, value)else:if node.right is None:node.right = TreeNode(value)else:self._insert_recursive(node.right, value)def search(self, value):return self._search_recursive(self.root, value)def _search_recursive(self, node, value):if node is None or node.value == value:return nodeif value < node.value:return self._search_recursive(node.left, value)return self._search_recursive(node.right, value)# Пример использованияbst = BinarySearchTree()bst.insert(10)bst.insert(5)bst.insert(15)print(bst.search(5)) # <__main__.TreeNode object>print(bst.search(20)) # None
Этот код демонстрирует базовую структуру дерева: каждый узел содержит значение и ссылки на левого и правого потомка. Вставка и поиск работают за O(log n) в среднем случае. На практике деревья также используются в алгоритмах сжатия (например, Хаффмана), в базах данных (B-деревья) и для реализации кэширования (LRU-кэш на основе дерева).
> Похожие задачи по Python
В чем разница ListAPIView и APIView в Django REST Framework
Как работает join в Django
Что такое дерево и его структура
Что такое очередь и ее основные принципы работы
> Похожие задачи по backend
В чем разница ListAPIView и APIView в Django REST Framework
Как работает join в Django
Что такое дерево и его структура
Что такое очередь и ее основные принципы работы
> ГОТОВЫ К СЛЕДУЮЩЕМУ СОБЕСЕДОВАНИЮ?
Запустите тренировочную сессию с ИИ и получите детальную обратную связь, чтобы увереннее проходить реальные интервью