Интерактивный визуализатор алгоритмов деревьев поиска: BST, AVL, Red-Black и Splay. Проект демонстрирует вставку, удаление и поиск в различных структурах данных в реальном времени с плавной анимацией.
- 4 типа деревьев:
- BST: стандартное бинарное дерево поиска.
- AVL: самобалансирующееся дерево с гарантированным временем поиска
O(log n). - Red-Black: красно-чёрное дерево с балансировкой через перекраску и вращения.
- Splay: дерево с самоорганизацией, перемещающее часто используемые узлы к корню.
- Интерактивная визуализация: анимация поворотов, перекраски и структурных изменений.
- Архитектура MVC: чёткое разделение модели, представления и контроллера.
- Тестирование: unit-тесты проверяют инварианты и корректность балансировки.
- Язык: Python 3.10+
- GUI: PySide6 (Qt)
- Зависимости: uv
- Тесты: Pytest
Если uv ещё не установлен, выполните:
pip install uvgit clone git@github.com:Skeltex/tree-visualizer.git
cd tree-visualizer
uv run main.pyКоманда uv run автоматически создаст виртуальное окружение, синхронизирует зависимости по uv.lock и запустит приложение.
Запустите все тесты:
uv run pytest -vcore/— алгоритмы деревьев и модели данных.gui/— графические компоненты на PySide6 (узлы, линии, сцена).controller/— логика анимации и синхронизация модели с визуализацией.tests/— unit-тесты для проверок корректности деревьев.pyproject.toml— конфигурация проекта.uv.lock— зафиксированные версии зависимостей.