Skip to content

alken1t15/datastructures

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 

Repository files navigation

Библиотека (Kotlin)

Этот проект реализует различные деревья поиска на Kotlin, включая:

  • Обычное двоичное дерево поиска (BST)
  • Красно-черное дерево (Red-Black Tree)
  • AVL-дерево

📂 Структура проекта

com/example/datastructures/
│── common/               # Общие интерфейсы и класс узла
│   ├── Tree.kt           # Интерфейс для деревьев
│   ├── Node.kt           # Класс узла (если необходим)
│
│── trees/                # Реализации различных деревьев
│   ├── BinarySearchTree.kt    # Реализация BST
│   ├── RedBlackTree.kt        # Реализация красно-черного дерева
│   ├── AVLTree.kt             # Реализация AVL-дерева
│
└── test/                 # Юнит-тесты для деревьев
    ├── TreeTest.kt
    ├── BSTTest.kt
    ├── RedBlackTreeTest.kt
    ├── AVLTreeTest.kt

🚀 Начало работы

1️⃣ Клонирование репозитория

git clone https://github.com/alken1t15/datastructures.git
cd datastructures

2️⃣ Сборка проекта

Используйте Gradle для сборки проекта:

gradle build

3️⃣ Запуск тестов

gradle test

🛠 Использование

Вы можете создать и использовать любое дерево следующим образом:

import com.example.datastructures.trees.BinarySearchTree

fun main() {
    val bst = BinarySearchTree<Int, Int>()
    bst.insert(5, 10)
    bst.insert(3, 22)
    bst.insert(7, 7)
    
    println("Поиск 10: ${bst.search(5)}") // Вернет значение 10
    println("Поиск 20: ${bst.search(3)}") // Вернет значение 22
}

📌 Возможности

Двоичное дерево поиска (BST) – Вставка, удаление, поиск элементов.
Красно-черное дерево – Самобалансирующееся дерево с логарифмическими операциями.
AVL-дерево – Еще одно сбалансированное дерево с гарантированной сложностью O(log n).
Юнит-тесты – JUnit 5 тесты для каждой реализации дерева.

📜 Лицензия

Этот проект распространяется под лицензией MIT.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages