Решаем задачи без самобалансирующихся деревьев в Python
|
|
Вторник, 13 Марта 2018 г. 10:19
+ в цитатник
Многие задачи на алгоритмы требуют знания определённых структур данных. Стек, очередь, куча, динамический массив, двоичное дерево поиска — нечасто решение алгоритмической задачи обходится без использования чего-либо из них. Однако, качественная их реализация — нетривиальная задача, и при написании кода всегда хочется по максимуму обойтись использованием стандартной библиотеки языка.
Что касается Python, то в нём есть почти всё.
- Динамический массив — встроенный тип
list. Он же поддерживает и стековые операции: .append() и .pop().
- Хэш-таблица — встроенные типы
set и dict, а также неизменяемый брат сета frozenset.
- Куча —
list со специальными операциями вставки и удаления, реализованными в модуле heapq.
- Двусторонняя очередь — это описанный в модуле
collections тип deque.
Но вот самобалансирующегося дерева поиска, как такового, в стандартной библиотеке нет. А жаль!
В этой статье я разберу несколько алгоритмических задачек, подразумевающих решение с помощью двоичного дерева, и покажу, чем в разных ситуациях его можно заменить в Питоне.
Покажите мне картинки и код!
https://habrahabr.ru/post/350732/
-
Запись понравилась
-
0
Процитировали
-
0
Сохранили
-